Commit 13ca4169 authored by Tatsuhisa Yamaguchi's avatar Tatsuhisa Yamaguchi Committed by Commit Bot

Disable unnecessary tab focus on unclickable info label.

Test: ash_unittests --gtest_filter=TrayInfoLabelTest*
Bug: 862116
Change-Id: Ifbedc4d656b1e5421f8a2b546d528378e56c6fc6
Reviewed-on: https://chromium-review.googlesource.com/1140019Reviewed-by: default avatarTetsui Ohkubo <tetsui@chromium.org>
Reviewed-by: default avatarYoshiki Iguchi <yoshiki@chromium.org>
Commit-Queue: Tatsuhisa Yamaguchi <yamaguchi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576377}
parent 99aa7a80
......@@ -9,7 +9,6 @@
#include "ui/accessibility/ax_node_data.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/views/layout/fill_layout.h"
namespace ash {
TrayInfoLabel::TrayInfoLabel(TrayInfoLabel::Delegate* delegate, int message_id)
......@@ -30,6 +29,8 @@ TrayInfoLabel::TrayInfoLabel(TrayInfoLabel::Delegate* delegate, int message_id)
tri_view->AddView(TriView::Container::CENTER, label_);
AddChildView(tri_view);
SetFocusBehavior(IsClickable() ? FocusBehavior::ALWAYS
: FocusBehavior::NEVER);
Update(message_id);
}
......@@ -55,6 +56,8 @@ void TrayInfoLabel::Update(int message_id) {
base::string16 text = l10n_util::GetStringUTF16(message_id);
label_->SetText(text);
SetAccessibleName(text);
SetFocusBehavior(IsClickable() ? FocusBehavior::ALWAYS
: FocusBehavior::NEVER);
}
bool TrayInfoLabel::PerformAction(const ui::Event& event) {
......
......@@ -50,6 +50,11 @@ class TestDelegate : public TrayInfoLabel::Delegate {
class TrayInfoLabelTest : public AshTestBase {
public:
void SetUp() override {
AshTestBase::SetUp();
delegate_ = std::make_unique<TestDelegate>();
}
void TearDown() override {
AshTestBase::TearDown();
label_.reset();
......@@ -57,10 +62,9 @@ class TrayInfoLabelTest : public AshTestBase {
}
void CreateLabel(bool use_delegate, int message_id) {
if (use_delegate)
delegate_ = std::make_unique<TestDelegate>();
label_ = std::make_unique<TrayInfoLabel>(delegate_.get(), message_id);
label_ = std::make_unique<TrayInfoLabel>(
use_delegate ? delegate_.get() : nullptr, message_id);
use_delegate_ = use_delegate;
}
void ClickOnLabel(bool expect_click_was_handled) {
......@@ -70,6 +74,9 @@ class TrayInfoLabelTest : public AshTestBase {
void VerifyClickability(bool expected_clickable) {
EXPECT_EQ(expected_clickable, label_->IsClickable());
EXPECT_EQ(expected_clickable ? views::View::FocusBehavior::ALWAYS
: views::View::FocusBehavior::NEVER,
label_->focus_behavior());
ui::AXNodeData node_data;
label_->GetAccessibleNodeData(&node_data);
......@@ -81,7 +88,7 @@ class TrayInfoLabelTest : public AshTestBase {
}
void VerifyClicks(const std::vector<int>& expected_clicked_message_ids) {
if (!delegate_) {
if (!use_delegate_) {
EXPECT_TRUE(expected_clicked_message_ids.empty());
return;
}
......@@ -94,6 +101,7 @@ class TrayInfoLabelTest : public AshTestBase {
protected:
std::unique_ptr<TrayInfoLabel> label_;
std::unique_ptr<TestDelegate> delegate_;
bool use_delegate_;
};
TEST_F(TrayInfoLabelTest, NoDelegate) {
......@@ -119,9 +127,10 @@ TEST_F(TrayInfoLabelTest, PerformAction) {
const int kClickableMessageId2 = IDS_ASH_STATUS_TRAY_BLUETOOTH_DISABLED;
const int kNonClickableMessageId = IDS_ASH_STATUS_TRAY_BLUETOOTH_DISCOVERING;
CreateLabel(true /* use_delegate */, kClickableMessageId1);
delegate_->AddClickableMessageId(kClickableMessageId1);
delegate_->AddClickableMessageId(kClickableMessageId2);
CreateLabel(true /* use_delegate */, kClickableMessageId1);
VerifyNoClicks();
EXPECT_EQ(l10n_util::GetStringUTF16(kClickableMessageId1),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment