Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(591)

Side by Side Diff: chrome/browser/chromeos/accessibility/magnification_manager_unittest.cc

Issue 166273014: Remove dependency on NotificationService for cros a11y settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge ToT. Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" 5 #include "chrome/browser/chromeos/accessibility/magnification_manager.h"
6 6
7 #include "ash/magnifier/magnifier_constants.h" 7 #include "ash/magnifier/magnifier_constants.h"
8 #include "ash/test/ash_test_base.h" 8 #include "ash/test/ash_test_base.h"
9 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "chrome/browser/chrome_notification_types.h"
11 #include "chrome/common/pref_names.h" 10 #include "chrome/common/pref_names.h"
12 #include "chrome/test/base/testing_profile.h" 11 #include "chrome/test/base/testing_profile.h"
13 #include "content/public/browser/notification_service.h"
14 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
15 13
16 namespace chromeos { 14 namespace chromeos {
17 namespace { 15 namespace {
18 16
19 class MockMagnificationObserver : public content::NotificationObserver {
20 public:
21 MockMagnificationObserver() : observed_(false),
22 observed_enabled_(false),
23 observed_type_(ash::kDefaultMagnifierType) {
24 registrar_.Add(
25 this,
26 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER,
27 content::NotificationService::AllSources());
28 }
29
30 bool observed() const { return observed_; }
31 bool observed_enabled() const { return observed_enabled_; }
32 ash::MagnifierType observed_type() const { return observed_type_; }
33
34 void reset() { observed_ = false; }
35
36 private:
37 // content::NotificationObserver implimentation:
38 virtual void Observe(int type,
39 const content::NotificationSource& source,
40 const content::NotificationDetails& details) OVERRIDE {
41 switch (type) {
42 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER:
43 AccessibilityStatusEventDetails* accessibility_status =
44 content::Details<AccessibilityStatusEventDetails>(details).ptr();
45
46 observed_ = true;
47 observed_enabled_ = accessibility_status->enabled;
48 observed_type_ = accessibility_status->magnifier_type;
49 }
50 }
51
52 bool observed_;
53 bool observed_enabled_;
54 ash::MagnifierType observed_type_;
55
56 content::NotificationRegistrar registrar_;
57 };
58
59 void EnableMagnifier() { 17 void EnableMagnifier() {
60 return MagnificationManager::Get()->SetMagnifierEnabled(true); 18 return MagnificationManager::Get()->SetMagnifierEnabled(true);
61 } 19 }
62 20
63 void DisableMagnifier() { 21 void DisableMagnifier() {
64 return MagnificationManager::Get()->SetMagnifierEnabled(false); 22 return MagnificationManager::Get()->SetMagnifierEnabled(false);
65 } 23 }
66 24
67 bool IsMagnifierEnabled() { 25 bool IsMagnifierEnabled() {
68 return MagnificationManager::Get()->IsMagnifierEnabled(); 26 return MagnificationManager::Get()->IsMagnifierEnabled();
(...skipping 22 matching lines...) Expand all
91 } 49 }
92 50
93 virtual void TearDown() OVERRIDE { 51 virtual void TearDown() OVERRIDE {
94 MagnificationManager::Shutdown(); 52 MagnificationManager::Shutdown();
95 ash::test::AshTestBase::TearDown(); 53 ash::test::AshTestBase::TearDown();
96 } 54 }
97 55
98 TestingProfile profile_; 56 TestingProfile profile_;
99 }; 57 };
100 58
101 TEST_F(MagnificationManagerTest, MagnificationObserver) {
102 MockMagnificationObserver observer;
103
104 EXPECT_FALSE(observer.observed());
105
106 // Set full screen magnifier, and confirm the observer is called.
107 EnableMagnifier();
108 SetMagnifierType(ash::MAGNIFIER_FULL);
109 EXPECT_TRUE(observer.observed());
110 EXPECT_TRUE(observer.observed_enabled());
111 EXPECT_EQ(observer.observed_type(), ash::MAGNIFIER_FULL);
112 EXPECT_EQ(GetMagnifierType(), ash::MAGNIFIER_FULL);
113 observer.reset();
114
115 // Set full screen magnifier again, and confirm the observer is not called.
116 SetMagnifierType(ash::MAGNIFIER_FULL);
117 EXPECT_FALSE(observer.observed());
118 EXPECT_EQ(GetMagnifierType(), ash::MAGNIFIER_FULL);
119 observer.reset();
120 }
121
122 TEST_F(MagnificationManagerTest, ChangeType) { 59 TEST_F(MagnificationManagerTest, ChangeType) {
123 // Set full screen magnifier, and confirm the status is set successfully. 60 // Set full screen magnifier, and confirm the status is set successfully.
124 EnableMagnifier(); 61 EnableMagnifier();
125 SetMagnifierType(ash::MAGNIFIER_FULL); 62 SetMagnifierType(ash::MAGNIFIER_FULL);
126 EXPECT_TRUE(IsMagnifierEnabled()); 63 EXPECT_TRUE(IsMagnifierEnabled());
127 EXPECT_EQ(GetMagnifierType(), ash::MAGNIFIER_FULL); 64 EXPECT_EQ(GetMagnifierType(), ash::MAGNIFIER_FULL);
128 65
129 // Set partial screen magnifier, and confirm the change is ignored. 66 // Set partial screen magnifier, and confirm the change is ignored.
130 SetMagnifierType(ash::MAGNIFIER_PARTIAL); 67 SetMagnifierType(ash::MAGNIFIER_PARTIAL);
131 EXPECT_TRUE(IsMagnifierEnabled()); 68 EXPECT_TRUE(IsMagnifierEnabled());
132 EXPECT_EQ(GetMagnifierType(), ash::MAGNIFIER_FULL); 69 EXPECT_EQ(GetMagnifierType(), ash::MAGNIFIER_FULL);
133 70
134 // Disables magnifier, and confirm the status is set successfully. 71 // Disables magnifier, and confirm the status is set successfully.
135 DisableMagnifier(); 72 DisableMagnifier();
136 EXPECT_FALSE(IsMagnifierEnabled()); 73 EXPECT_FALSE(IsMagnifierEnabled());
137 EXPECT_EQ(GetMagnifierType(), ash::MAGNIFIER_FULL); 74 EXPECT_EQ(GetMagnifierType(), ash::MAGNIFIER_FULL);
138 } 75 }
139 76
140 } // namespace chromeos 77 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698