Commit 8728bd65 authored by Aaron Leventhal's avatar Aaron Leventhal Committed by Commit Bot

Unit tests for accessible labelled checkbox

Bug: 818216
Change-Id: If959c872723ce79ba03adee13c247cf8382f8551
Reviewed-on: https://chromium-review.googlesource.com/951365
Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: default avatarMichael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541202}
parent e5a6dfad
......@@ -915,6 +915,7 @@ source_set("views_unittests_sources") {
"cocoa/drag_drop_client_mac_unittest.mm",
"controls/button/blue_button_unittest.cc",
"controls/button/button_unittest.cc",
"controls/button/checkbox_unittest.cc",
"controls/button/image_button_factory_unittest.cc",
"controls/button/image_button_unittest.cc",
"controls/button/label_button_label_unittest.cc",
......
......@@ -45,6 +45,9 @@ class VIEWS_EXPORT Checkbox : public LabelButton {
// an accessible name can be used, e.g. a Label, StyledLabel or Link.
void SetAssociatedLabel(View* labelling_view);
// LabelButton:
void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
protected:
// Returns whether MD is enabled. Returns true if |force_md| in the
// constructor or --secondary-ui-md flag is set.
......@@ -52,7 +55,6 @@ class VIEWS_EXPORT Checkbox : public LabelButton {
// LabelButton:
const char* GetClassName() const override;
void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
void OnFocus() override;
void OnBlur() override;
void OnNativeThemeChanged(const ui::NativeTheme* theme) override;
......
// Copyright (c) 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/views/controls/button/checkbox.h"
#include "base/strings/utf_string_conversions.h"
#include "ui/accessibility/ax_enums.mojom.h"
#include "ui/accessibility/ax_node_data.h"
#include "ui/views/controls/button/checkbox.h"
#include "ui/views/controls/styled_label.h"
#include "ui/views/test/views_test_base.h"
namespace views {
class CheckboxTest : public ViewsTestBase {
public:
CheckboxTest() {}
~CheckboxTest() override {}
void SetUp() override {
ViewsTestBase::SetUp();
// Create a widget so that the Checkbox can query the hover state
// correctly.
widget_ = std::make_unique<Widget>();
Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP);
params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
params.bounds = gfx::Rect(0, 0, 650, 650);
widget_->Init(params);
widget_->Show();
checkbox_ = new Checkbox(base::string16());
widget_->SetContentsView(checkbox_);
}
void TearDown() override {
widget_.reset();
ViewsTestBase::TearDown();
}
protected:
Checkbox* checkbox() { return checkbox_; }
private:
std::unique_ptr<Widget> widget_;
Checkbox* checkbox_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(CheckboxTest);
};
TEST_F(CheckboxTest, AccessibilityTest) {
const base::string16 label_text = base::ASCIIToUTF16("Some label");
StyledLabel label(label_text, nullptr);
checkbox()->SetAssociatedLabel(&label);
ui::AXNodeData ax_data;
checkbox()->GetAccessibleNodeData(&ax_data);
EXPECT_EQ(ax_data.GetString16Attribute(ax::mojom::StringAttribute::kName),
label_text);
EXPECT_EQ(ax_data.role, ax::mojom::Role::kCheckBox);
}
} // namespace views
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