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

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

Issue 11642014: Re-introduce the partial magnifier (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ash/magnifier/magnification_controller.h" 5 #include "ash/magnifier/magnification_controller.h"
6 #include "ash/shell.h" 6 #include "ash/shell.h"
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "chrome/browser/browser_process.h" 8 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/chromeos/accessibility/accessibility_util.h" 9 #include "chrome/browser/chromeos/accessibility/accessibility_util.h"
10 #include "chrome/browser/chromeos/accessibility/magnification_manager.h" 10 #include "chrome/browser/chromeos/accessibility/magnification_manager.h"
11 #include "chrome/browser/chromeos/cros/cros_in_process_browser_test.h" 11 #include "chrome/browser/chromeos/cros/cros_in_process_browser_test.h"
12 #include "chrome/browser/chromeos/login/helper.h" 12 #include "chrome/browser/chromeos/login/helper.h"
13 #include "chrome/browser/chromeos/login/login_utils.h" 13 #include "chrome/browser/chromeos/login/login_utils.h"
14 #include "chrome/browser/chromeos/login/user_manager.h" 14 #include "chrome/browser/chromeos/login/user_manager.h"
15 #include "chrome/browser/chromeos/login/user_manager_impl.h" 15 #include "chrome/browser/chromeos/login/user_manager_impl.h"
16 #include "chrome/browser/prefs/pref_service.h" 16 #include "chrome/browser/prefs/pref_service.h"
17 #include "chrome/browser/profiles/profile.h" 17 #include "chrome/browser/profiles/profile.h"
18 #include "chrome/browser/profiles/profile_manager.h" 18 #include "chrome/browser/profiles/profile_manager.h"
19 #include "chrome/common/chrome_notification_types.h" 19 #include "chrome/common/chrome_notification_types.h"
20 #include "chrome/common/chrome_switches.h" 20 #include "chrome/common/chrome_switches.h"
21 #include "chrome/common/pref_names.h" 21 #include "chrome/common/pref_names.h"
22 #include "chrome/test/base/testing_profile.h" 22 #include "chrome/test/base/testing_profile.h"
23 #include "testing/gtest/include/gtest/gtest.h" 23 #include "testing/gtest/include/gtest/gtest.h"
24 24
25 namespace chromeos { 25 namespace chromeos {
26 26
27 namespace {
28
29 void SetMagnifier(bool enabled, ash::MagnifierType type) {
30 MagnificationManager::Get()->SetMagnifier(enabled, type);
31 }
32
33 void SetFullScreenMagnifierScale(double scale) {
34 ash::Shell::GetInstance()->
35 magnification_controller()->SetScale(scale, false);
36 }
37
38 double GetFullScreenMagnifierScale() {
39 return ash::Shell::GetInstance()->magnification_controller()->GetScale();
40 }
41
42 void SetSavedFullScreenMagnifierScale(double scale) {
43 MagnificationManager::Get()->SaveScreenMagnifierScale(scale);
44 }
45
46 double GetSavedFullScreenMagnifierScale() {
47 return MagnificationManager::Get()->GetSavedScreenMagnifierScale();
48 }
49
50 ash::MagnifierType GetMagnifierType() {
51 return MagnificationManager::Get()->GetMagnifierType();
52 }
53
54 bool IsMagnifierEnabled() {
55 return MagnificationManager::Get()->IsMagnifierEnabled();
56 }
57
58 Profile* profile() {
59 Profile* profile = ProfileManager::GetDefaultProfileOrOffTheRecord();
60 DCHECK(profile);
61 return profile;
62 }
63
64 PrefServiceBase* prefs() {
65 return PrefServiceBase::FromBrowserContext(profile());
66 }
67
68 void EnableScreenManagnifierToPref(bool enabled) {
69 prefs()->SetBoolean(prefs::kScreenMagnifierEnabled, enabled);
70 }
71
72 void SetScreenManagnifierTypeToPref(ash::MagnifierType type) {
73 prefs()->SetInteger(prefs::kScreenMagnifierType, type);
74 }
75
76 } // anonymouse namespace
77
27 class MagnificationManagerTest : public CrosInProcessBrowserTest, 78 class MagnificationManagerTest : public CrosInProcessBrowserTest,
28 public content::NotificationObserver { 79 public content::NotificationObserver {
29 protected: 80 protected:
30 MagnificationManagerTest() : observed_(false), 81 MagnificationManagerTest() : observed_(false),
31 observed_type_(ash::MAGNIFIER_OFF) {} 82 observed_enabled_(false),
83 observed_type_(ash::MAGNIFIER_TYPE_UNCHANGE) {}
32 virtual ~MagnificationManagerTest() {} 84 virtual ~MagnificationManagerTest() {}
33 85
34 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 86 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
35 command_line->AppendSwitch(switches::kLoginManager); 87 command_line->AppendSwitch(switches::kLoginManager);
36 command_line->AppendSwitchASCII(switches::kLoginProfile, 88 command_line->AppendSwitchASCII(switches::kLoginProfile,
37 TestingProfile::kTestUserProfileDir); 89 TestingProfile::kTestUserProfileDir);
38 } 90 }
39 91
40 Profile* profile() {
41 Profile* profile = ProfileManager::GetDefaultProfileOrOffTheRecord();
42 DCHECK(profile);
43 return profile;
44 }
45
46 PrefServiceBase* prefs() {
47 return PrefServiceBase::FromBrowserContext(profile());
48 }
49
50 virtual void SetUpOnMainThread() OVERRIDE { 92 virtual void SetUpOnMainThread() OVERRIDE {
51 registrar_.Add( 93 registrar_.Add(
52 this, 94 this,
53 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER, 95 chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER,
54 content::NotificationService::AllSources()); 96 content::NotificationService::AllSources());
55 } 97 }
56 98
57 void SetScreenManagnifierType(ash::MagnifierType type) {
58 MagnificationManager::Get()->SetMagnifier(type);
59 }
60
61 void SetScreenManagnifierTypeToPref(ash::MagnifierType type) {
62 prefs()->SetBoolean(prefs::kScreenMagnifierEnabled,
63 (type != ash::MAGNIFIER_OFF) ? true : false);
64 }
65
66 void SetFullScreenMagnifierScale(double scale) {
67 ash::Shell::GetInstance()->
68 magnification_controller()->SetScale(scale, false);
69 }
70
71 double GetFullScreenMagnifierScale() {
72 return ash::Shell::GetInstance()->magnification_controller()->GetScale();
73 }
74
75 void SetSavedFullScreenMagnifierScale(double scale) {
76 MagnificationManager::Get()->SaveScreenMagnifierScale(scale);
77 }
78
79 double GetSavedFullScreenMagnifierScale() {
80 return MagnificationManager::Get()->GetSavedScreenMagnifierScale();
81 }
82
83 void CheckCurrentMagnifierType(
84 ash::MagnifierType type) {
85 EXPECT_EQ(MagnificationManager::Get()->GetMagnifierType(), type);
86 }
87
88 // content::NotificationObserver implementation. 99 // content::NotificationObserver implementation.
89 virtual void Observe(int type, 100 virtual void Observe(int type,
90 const content::NotificationSource& source, 101 const content::NotificationSource& source,
91 const content::NotificationDetails& details) OVERRIDE { 102 const content::NotificationDetails& details) OVERRIDE {
92 switch (type) { 103 switch (type) {
93 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER: { 104 case chrome::NOTIFICATION_CROS_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFIER: {
94 accessibility::AccessibilityStatusEventDetails* accessibility_status = 105 accessibility::AccessibilityStatusEventDetails* accessibility_status =
95 content::Details<accessibility::AccessibilityStatusEventDetails>( 106 content::Details<accessibility::AccessibilityStatusEventDetails>(
96 details).ptr(); 107 details).ptr();
97 108
98 observed_ = true; 109 observed_ = true;
99 observed_type_ = accessibility_status->enabled ? ash::MAGNIFIER_FULL : 110 observed_enabled_ = accessibility_status->enabled;
100 ash::MAGNIFIER_OFF; 111 observed_type_ = accessibility_status->magnifier_type;
101 break; 112 break;
102 } 113 }
103 } 114 }
104 } 115 }
105 116
106 bool observed_; 117 bool observed_;
118 bool observed_enabled_;
107 ash::MagnifierType observed_type_; 119 ash::MagnifierType observed_type_;
108 content::NotificationRegistrar registrar_; 120 content::NotificationRegistrar registrar_;
109 DISALLOW_COPY_AND_ASSIGN(MagnificationManagerTest); 121 DISALLOW_COPY_AND_ASSIGN(MagnificationManagerTest);
110 }; 122 };
111 123
112 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginOffToOff) { 124 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginOffToOff) {
113 // Confirms that magnifier is disabled on the login screen. 125 // Confirms that magnifier is disabled on the login screen.
114 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 126 EXPECT_FALSE(IsMagnifierEnabled());
115 127
116 // Logs in. 128 // Logs in.
117 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true); 129 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true);
118 130
119 // Confirms that magnifier is still disabled just after login. 131 // Confirms that magnifier is still disabled just after login.
120 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 132 EXPECT_FALSE(IsMagnifierEnabled());
121 133
122 UserManager::Get()->SessionStarted(); 134 UserManager::Get()->SessionStarted();
123 135
124 // Confirms that magnifier is still disabled just after login. 136 // Confirms that magnifier is still disabled just after login.
125 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 137 EXPECT_FALSE(IsMagnifierEnabled());
126 138
127 // Enables magnifier. 139 // Enables magnifier.
128 SetScreenManagnifierType(ash::MAGNIFIER_FULL); 140 SetMagnifier(true, ash::MAGNIFIER_TYPE_UNCHANGE);
129 // Confirms that magnifier is enabled. 141 // Confirms that magnifier is enabled.
130 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 142 EXPECT_TRUE(IsMagnifierEnabled());
143 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
131 } 144 }
132 145
133 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginFullToOff) { 146 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginFullToOff) {
134 // Confirms that magnifier is disabled on the login screen. 147 // Confirms that magnifier is disabled on the login screen.
135 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 148 EXPECT_FALSE(IsMagnifierEnabled());
136 149
137 // Enables magnifier on login scren. 150 // Enables magnifier on login scren.
138 SetScreenManagnifierType(ash::MAGNIFIER_FULL); 151 SetMagnifier(true, ash::MAGNIFIER_TYPE_UNCHANGE);
139 152
140 // Logs in (but the session is not started yet). 153 // Logs in (but the session is not started yet).
141 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true); 154 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true);
142 // Confirms that magnifier is keeping enabled. 155 // Confirms that magnifier is keeping enabled.
143 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 156 EXPECT_TRUE(IsMagnifierEnabled());
157 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
144 158
145 UserManager::Get()->SessionStarted(); 159 UserManager::Get()->SessionStarted();
146 160
147 // Confirms that magnifier is disabled just after login. 161 // Confirms that magnifier is disabled just after login.
148 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 162 EXPECT_FALSE(IsMagnifierEnabled());
149 } 163 }
150 164
151 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginOffToFull) { 165 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginOffToFull) {
152 // Changes to full screen magnifier again and confirms that. 166 // Changes to full screen magnifier again and confirms that.
153 SetScreenManagnifierType(ash::MAGNIFIER_OFF); 167 SetMagnifier(false, ash::MAGNIFIER_TYPE_UNCHANGE);
154 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 168 EXPECT_FALSE(IsMagnifierEnabled());
155 169
156 // Logs in (but the session is not started yet). 170 // Logs in (but the session is not started yet).
157 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true); 171 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true);
158 172
159 // Confirms that magnifier is keeping disabled. 173 // Confirms that magnifier is keeping disabled.
160 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 174 EXPECT_FALSE(IsMagnifierEnabled());
161 // Enable magnifier on the pref. 175 // Enable magnifier on the pref.
176 EnableScreenManagnifierToPref(true);
162 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_FULL); 177 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_FULL);
163 SetSavedFullScreenMagnifierScale(2.5); 178 SetSavedFullScreenMagnifierScale(2.5);
164 179
165 UserManager::Get()->SessionStarted(); 180 UserManager::Get()->SessionStarted();
166 181
167 // Confirms that the prefs are successfully loaded. 182 // Confirms that the prefs are successfully loaded.
168 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 183 EXPECT_TRUE(IsMagnifierEnabled());
184 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
169 EXPECT_EQ(2.5, GetFullScreenMagnifierScale()); 185 EXPECT_EQ(2.5, GetFullScreenMagnifierScale());
170 } 186 }
171 187
188 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginOffToPartial) {
189 // Changes to full screen magnifier again and confirms that.
190 SetMagnifier(false, ash::MAGNIFIER_TYPE_UNCHANGE);
191 EXPECT_FALSE(IsMagnifierEnabled());
192
193 // Logs in (but the session is not started yet).
194 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true);
195
196 // Confirms that magnifier is keeping disabled.
197 EXPECT_FALSE(IsMagnifierEnabled());
198 // Enable magnifier on the pref.
199 EnableScreenManagnifierToPref(true);
200 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_PARTIAL);
201
202 UserManager::Get()->SessionStarted();
203
204 // Confirms that the prefs are successfully loaded.
205 EXPECT_TRUE(IsMagnifierEnabled());
206 EXPECT_EQ(ash::MAGNIFIER_PARTIAL, GetMagnifierType());
207
208 // Full screen magnifier scale is 1.0x since it's 'partial' magnifier.
209 EXPECT_EQ(1.0, GetFullScreenMagnifierScale());
210 }
211
172 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginFullToFull) { 212 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginFullToFull) {
173 // Changes to full screen magnifier again and confirms that. 213 // Changes to full screen magnifier again and confirms that.
174 SetScreenManagnifierType(ash::MAGNIFIER_FULL); 214 SetMagnifier(true, ash::MAGNIFIER_FULL);
175 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 215 EXPECT_TRUE(IsMagnifierEnabled());
216 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
176 217
177 // Logs in (but the session is not started yet). 218 // Logs in (but the session is not started yet).
178 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true); 219 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true);
179 220
180 // Confirms that magnifier is keeping enabled. 221 // Confirms that magnifier is keeping enabled.
181 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 222 EXPECT_TRUE(IsMagnifierEnabled());
223 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
182 // Enable magnifier on the pref. 224 // Enable magnifier on the pref.
225 EnableScreenManagnifierToPref(true);
183 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_FULL); 226 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_FULL);
184 SetSavedFullScreenMagnifierScale(2.5); 227 SetSavedFullScreenMagnifierScale(2.5);
185 228
186 UserManager::Get()->SessionStarted(); 229 UserManager::Get()->SessionStarted();
187 230
188 // Confirms that the prefs are successfully loaded. 231 // Confirms that the prefs are successfully loaded.
189 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 232 EXPECT_TRUE(IsMagnifierEnabled());
233 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
190 EXPECT_EQ(2.5, GetFullScreenMagnifierScale()); 234 EXPECT_EQ(2.5, GetFullScreenMagnifierScale());
191 } 235 }
192 236
193 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, ChangeMagnifierType) { 237 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, LoginFullToPartial) {
194 // Changes to full screen magnifier and confirms that. 238 // Changes to full screen magnifier again and confirms that.
195 SetScreenManagnifierType(ash::MAGNIFIER_FULL); 239 SetMagnifier(true, ash::MAGNIFIER_FULL);
196 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 240 EXPECT_TRUE(IsMagnifierEnabled());
241 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
197 242
198 // Changes to partial screen magnifier and confirms that. 243 // Logs in (but the session is not started yet).
199 SetScreenManagnifierType(ash::MAGNIFIER_PARTIAL); 244 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true);
200 CheckCurrentMagnifierType(ash::MAGNIFIER_PARTIAL);
201 245
202 // Disable magnifier and confirms that. 246 // Confirms that magnifier is keeping enabled.
203 SetScreenManagnifierType(ash::MAGNIFIER_OFF); 247 EXPECT_TRUE(IsMagnifierEnabled());
204 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 248 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
249 // Enable magnifier on the pref.
250 EnableScreenManagnifierToPref(true);
251 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_PARTIAL);
205 252
206 // Changes to full screen magnifier again and confirms that.
207 SetScreenManagnifierType(ash::MAGNIFIER_FULL);
208 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL);
209
210 // Logs in
211 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true);
212 UserManager::Get()->SessionStarted(); 253 UserManager::Get()->SessionStarted();
213 254
214 // Changes to full screen magnifier and confirms that. 255 // Confirms that the prefs are successfully loaded.
215 SetScreenManagnifierType(ash::MAGNIFIER_FULL); 256 EXPECT_TRUE(IsMagnifierEnabled());
216 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 257 EXPECT_EQ(ash::MAGNIFIER_PARTIAL, GetMagnifierType());
217 258
218 // Changes to partial screen magnifier and confirms that. 259 // Full screen magnifier scale is 1.0x since it's 'partial' magnifier.
219 SetScreenManagnifierType(ash::MAGNIFIER_PARTIAL); 260 EXPECT_EQ(1.0, GetFullScreenMagnifierScale());
220 CheckCurrentMagnifierType(ash::MAGNIFIER_PARTIAL); 261 }
221 262
222 // Disable magnifier and confirms that. 263 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, ChangeMagnifierType) {
223 SetScreenManagnifierType(ash::MAGNIFIER_OFF);
224 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF);
225 264
226 // Changes to full screen magnifier again and confirms that. 265 // (Disable, PARTIAL) -> (Enable, FULL)
227 SetScreenManagnifierType(ash::MAGNIFIER_FULL); 266 SetMagnifier(false, ash::MAGNIFIER_PARTIAL);
228 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 267 EXPECT_FALSE(IsMagnifierEnabled());
268 SetMagnifier(true, ash::MAGNIFIER_FULL);
269 EXPECT_TRUE(IsMagnifierEnabled());
270 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
271
272 // (Disable, FULL) -> (Enable, PARTIAL)
273 SetMagnifier(false, ash::MAGNIFIER_FULL);
274 EXPECT_FALSE(IsMagnifierEnabled());
275 SetMagnifier(true, ash::MAGNIFIER_PARTIAL);
276 EXPECT_TRUE(IsMagnifierEnabled());
277 EXPECT_EQ(ash::MAGNIFIER_PARTIAL, GetMagnifierType());
278
279 // (Enable, PARTIAL) -> (Enable, UNCHANGE)
280 SetMagnifier(true, ash::MAGNIFIER_TYPE_UNCHANGE);
281 EXPECT_TRUE(IsMagnifierEnabled());
282 EXPECT_EQ(ash::MAGNIFIER_PARTIAL, GetMagnifierType());
283
284 // (Enable, PARTIAL) -> (Enable, FULL)
285 SetMagnifier(true, ash::MAGNIFIER_FULL);
286 EXPECT_TRUE(IsMagnifierEnabled());
287 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
288
289 // (Enable, FULL) -> (Enable, UNCHANGE)
290 SetMagnifier(true, ash::MAGNIFIER_TYPE_UNCHANGE);
291 EXPECT_TRUE(IsMagnifierEnabled());
292 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
293
294 // (Enable, FULL) -> (Enable, PARTIAL)
295 SetMagnifier(true, ash::MAGNIFIER_PARTIAL);
296 EXPECT_TRUE(IsMagnifierEnabled());
297 EXPECT_EQ(ash::MAGNIFIER_PARTIAL, GetMagnifierType());
298
299 // Confirms that the type can be saved even when magnifier is disabled.
300 SetMagnifier(false, ash::MAGNIFIER_FULL);
301 EXPECT_FALSE(IsMagnifierEnabled());
302 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
303 SetMagnifier(false, ash::MAGNIFIER_PARTIAL);
304 EXPECT_FALSE(IsMagnifierEnabled());
305 EXPECT_EQ(ash::MAGNIFIER_PARTIAL, GetMagnifierType());
306
307 // Confirms that the saved type can be recovered.
308 SetMagnifier(true, ash::MAGNIFIER_TYPE_UNCHANGE);
309 EXPECT_TRUE(IsMagnifierEnabled());
310 EXPECT_EQ(ash::MAGNIFIER_PARTIAL, GetMagnifierType());
229 } 311 }
230 312
231 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, TypePref) { 313 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, TypePref) {
232 // Logs in 314 // Logs in
233 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true); 315 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true);
234 UserManager::Get()->SessionStarted(); 316 UserManager::Get()->SessionStarted();
235 317
236 // Confirms that magnifier is disabled just after login. 318 // Confirms that magnifier is disabled just after login.
237 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 319 EXPECT_FALSE(IsMagnifierEnabled());
238 320
239 // Sets the pref as true to enable magnifier. 321 // Sets the pref as true to enable magnifier.
240 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_FULL); 322 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_FULL);
323 EnableScreenManagnifierToPref(true);
241 // Confirms that magnifier is enabled. 324 // Confirms that magnifier is enabled.
242 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 325 EXPECT_TRUE(IsMagnifierEnabled());
326 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
327
328 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_PARTIAL);
329 EXPECT_TRUE(IsMagnifierEnabled());
330 EXPECT_EQ(ash::MAGNIFIER_PARTIAL, GetMagnifierType());
243 331
244 // Sets the pref as false to disabled magnifier. 332 // Sets the pref as false to disabled magnifier.
245 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_OFF); 333 EnableScreenManagnifierToPref(false);
246 // Confirms that magnifier is disabled. 334 // Confirms that magnifier is disabled.
247 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 335 EXPECT_FALSE(IsMagnifierEnabled());
248 336
249 // Sets the pref as true to enable magnifier again. 337 // Sets the pref as true to enable magnifier again.
250 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_FULL); 338 EnableScreenManagnifierToPref(true);
251 // Confirms that magnifier is enabled. 339 // Confirms that magnifier is enabled.
252 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 340 EXPECT_TRUE(IsMagnifierEnabled());
341 EXPECT_EQ(ash::MAGNIFIER_PARTIAL, GetMagnifierType());
253 } 342 }
254 343
255 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, ResumeSavedTypePref) { 344 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, ResumeSavedTypeFullPref) {
256 // Loads the profile of the user. 345 // Loads the profile of the user.
257 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true); 346 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true);
258 347
259 // Sets the pref as true to enable magnifier before login. 348 // Sets the pref as true to enable magnifier before login.
349 EnableScreenManagnifierToPref(true);
260 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_FULL); 350 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_FULL);
261 351
262 // Logs in. 352 // Logs in.
263 UserManager::Get()->SessionStarted(); 353 UserManager::Get()->SessionStarted();
264 354
265 // Confirms that magnifier is enabled just after login. 355 // Confirms that magnifier is enabled just after login.
266 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 356 EXPECT_TRUE(IsMagnifierEnabled());
357 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
358 }
359
360 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, ResumeSavedTypePartialPref) {
361 // Loads the profile of the user.
362 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true);
363
364 // Sets the pref as true to enable magnifier before login.
365 EnableScreenManagnifierToPref(true);
366 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_PARTIAL);
367
368 // Logs in.
369 UserManager::Get()->SessionStarted();
370
371 // Confirms that magnifier is enabled just after login.
372 EXPECT_TRUE(IsMagnifierEnabled());
373 EXPECT_EQ(ash::MAGNIFIER_PARTIAL, GetMagnifierType());
267 } 374 }
268 375
269 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, ScalePref) { 376 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, ScalePref) {
270 SetScreenManagnifierType(ash::MAGNIFIER_OFF); 377 SetMagnifier(false, ash::MAGNIFIER_TYPE_UNCHANGE);
271 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 378 EXPECT_FALSE(IsMagnifierEnabled());
272 379
273 // Sets 2.5x to the pref. 380 // Sets 2.5x to the pref.
274 SetSavedFullScreenMagnifierScale(2.5); 381 SetSavedFullScreenMagnifierScale(2.5);
275 382
276 // Enables full screen magnifier. 383 // Enables full screen magnifier.
277 SetScreenManagnifierType(ash::MAGNIFIER_FULL); 384 SetMagnifier(true, ash::MAGNIFIER_FULL);
278 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 385 EXPECT_TRUE(IsMagnifierEnabled());
386 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
279 387
280 // Confirms that 2.5x is restored. 388 // Confirms that 2.5x is restored.
281 EXPECT_EQ(2.5, GetFullScreenMagnifierScale()); 389 EXPECT_EQ(2.5, GetFullScreenMagnifierScale());
282 390
283 // Sets the scale and confirms that the scale is saved to pref. 391 // Sets the scale and confirms that the scale is saved to pref.
284 SetFullScreenMagnifierScale(3.0); 392 SetFullScreenMagnifierScale(3.0);
285 EXPECT_EQ(3.0, GetSavedFullScreenMagnifierScale()); 393 EXPECT_EQ(3.0, GetSavedFullScreenMagnifierScale());
286 } 394 }
287 395
288 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, InvalidScalePref) { 396 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, InvalidScalePref) {
289 // TEST 1: too small scale 397 // TEST 1: Sets too small scale
290 SetScreenManagnifierType(ash::MAGNIFIER_OFF); 398 SetMagnifier(false, ash::MAGNIFIER_TYPE_UNCHANGE);
291 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 399 EXPECT_FALSE(IsMagnifierEnabled());
292 400
293 // Sets too small value to the pref. 401 // Sets too small value to the pref.
294 SetSavedFullScreenMagnifierScale(0.5); 402 SetSavedFullScreenMagnifierScale(0.5);
295 403
296 // Enables full screen magnifier. 404 // Enables full screen magnifier.
297 SetScreenManagnifierType(ash::MAGNIFIER_FULL); 405 SetMagnifier(true, ash::MAGNIFIER_FULL);
298 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 406 EXPECT_TRUE(IsMagnifierEnabled());
407 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
299 408
300 // Confirms that the actual scale is set to the minimum scale. 409 // Confirms that the actual scale is set to the minimum scale.
301 EXPECT_EQ(1.0, GetFullScreenMagnifierScale()); 410 EXPECT_EQ(1.0, GetFullScreenMagnifierScale());
302 411
303 // TEST 2: too large scale 412 // TEST 2: Sets too large scale
304 SetScreenManagnifierType(ash::MAGNIFIER_OFF); 413 SetMagnifier(false, ash::MAGNIFIER_TYPE_UNCHANGE);
305 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 414 EXPECT_FALSE(IsMagnifierEnabled());
306 415
307 // Sets too large value to the pref. 416 // Sets too large value to the pref.
308 SetSavedFullScreenMagnifierScale(50.0); 417 SetSavedFullScreenMagnifierScale(50.0);
309 418
310 // Enables full screen magnifier. 419 // Enables full screen magnifier.
311 SetScreenManagnifierType(ash::MAGNIFIER_FULL); 420 SetMagnifier(true, ash::MAGNIFIER_FULL);
312 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 421 EXPECT_TRUE(IsMagnifierEnabled());
422 EXPECT_EQ(ash::MAGNIFIER_FULL, GetMagnifierType());
313 423
314 // Confirms that the actual scale is set to the maximum scale. 424 // Confirms that the actual scale is set to the maximum scale.
315 EXPECT_EQ(4.0, GetFullScreenMagnifierScale()); 425 EXPECT_EQ(4.0, GetFullScreenMagnifierScale());
316 } 426 }
317 427
318 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest, 428 IN_PROC_BROWSER_TEST_F(MagnificationManagerTest,
319 ChangingTypeInvokesNotification) { 429 ChangingTypeInvokesNotification) {
320 // Logs in 430 // Logs in
321 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true); 431 UserManager::Get()->UserLoggedIn("owner@invalid.domain", true);
322 UserManager::Get()->SessionStarted(); 432 UserManager::Get()->SessionStarted();
323 433
324 // Before the test, sets to full magnifier. 434 // Enable magnifier (without type)
325 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_FULL); 435 EnableScreenManagnifierToPref(true);
326 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 436 EXPECT_TRUE(observed_);
327 437
328 // Disables magnifier and confirms observer is invoked. 438 // Disables magnifier and confirms observer is invoked.
329 observed_ = false; 439 observed_ = false;
330 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_OFF); 440 SetMagnifier(false, ash::MAGNIFIER_TYPE_UNCHANGE);
331 EXPECT_TRUE(observed_); 441 EXPECT_TRUE(observed_);
332 EXPECT_EQ(observed_type_, ash::MAGNIFIER_OFF); 442
333 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 443 observed_ = false;
444 SetMagnifier(true, ash::MAGNIFIER_FULL);
445 EXPECT_TRUE(observed_);
334 446
335 // Enables full screen magnifier and confirms observer is invoked. 447 // Enables full screen magnifier and confirms observer is invoked.
336 observed_ = false; 448 observed_ = false;
337 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_FULL); 449 SetMagnifier(true, ash::MAGNIFIER_FULL);
338 EXPECT_TRUE(observed_); 450 EXPECT_TRUE(observed_);
339 EXPECT_EQ(observed_type_, ash::MAGNIFIER_FULL); 451 EXPECT_TRUE(observed_enabled_);
340 CheckCurrentMagnifierType(ash::MAGNIFIER_FULL); 452 EXPECT_EQ(ash::MAGNIFIER_FULL, observed_type_);
453
454 // Enables partial screen magnifier and confirms observer is invoked.
455 observed_ = false;
456 SetMagnifier(true, ash::MAGNIFIER_PARTIAL);
457 EXPECT_TRUE(observed_);
458 EXPECT_TRUE(observed_enabled_);
459 EXPECT_EQ(ash::MAGNIFIER_PARTIAL, observed_type_);
341 460
342 // Disables magnifier again and confirms observer is invoked. 461 // Disables magnifier again and confirms observer is invoked.
343 observed_ = false; 462 observed_ = false;
344 SetScreenManagnifierTypeToPref(ash::MAGNIFIER_OFF); 463 SetMagnifier(false, ash::MAGNIFIER_TYPE_UNCHANGE);
345 EXPECT_TRUE(observed_); 464 EXPECT_TRUE(observed_);
346 EXPECT_EQ(observed_type_, ash::MAGNIFIER_OFF); 465 EXPECT_FALSE(observed_enabled_);
347 CheckCurrentMagnifierType(ash::MAGNIFIER_OFF); 466 EXPECT_FALSE(IsMagnifierEnabled());
348 } 467 }
349 468
350 } // namespace chromeos 469 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698