| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "ash/system/chromeos/tray_display.h" | 5 #include "ash/system/chromeos/tray_display.h" |
| 6 | 6 |
| 7 #include "ash/display/display_manager.h" | 7 #include "ash/display/display_manager.h" |
| 8 #include "ash/root_window_controller.h" | 8 #include "ash/root_window_controller.h" |
| 9 #include "ash/screen_util.h" | 9 #include "ash/screen_util.h" |
| 10 #include "ash/shell.h" | 10 #include "ash/shell.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 } | 72 } |
| 73 | 73 |
| 74 class TrayDisplayTest : public ash::test::AshTestBase { | 74 class TrayDisplayTest : public ash::test::AshTestBase { |
| 75 public: | 75 public: |
| 76 TrayDisplayTest(); | 76 TrayDisplayTest(); |
| 77 ~TrayDisplayTest() override; | 77 ~TrayDisplayTest() override; |
| 78 | 78 |
| 79 void SetUp() override; | 79 void SetUp() override; |
| 80 | 80 |
| 81 protected: | 81 protected: |
| 82 SystemTray* tray() { return tray_; } | 82 SystemTray* GetTray(); |
| 83 TrayDisplay* tray_display() { return tray_display_; } | 83 TrayDisplay* GetTrayDisplay(); |
| 84 void CheckUpdate(); |
| 84 | 85 |
| 85 void CloseNotification(); | 86 void CloseNotification(); |
| 86 bool IsDisplayVisibleInTray() const; | 87 bool IsDisplayVisibleInTray() const; |
| 87 base::string16 GetTrayDisplayText() const; | 88 base::string16 GetTrayDisplayText() const; |
| 88 void CheckAccessibleName() const; | 89 void CheckAccessibleName() const; |
| 89 base::string16 GetTrayDisplayTooltipText() const; | 90 base::string16 GetTrayDisplayTooltipText() const; |
| 90 base::string16 GetDisplayNotificationText() const; | 91 base::string16 GetDisplayNotificationText() const; |
| 91 base::string16 GetDisplayNotificationAdditionalText() const; | 92 base::string16 GetDisplayNotificationAdditionalText() const; |
| 92 | 93 |
| 93 private: | 94 private: |
| 94 const message_center::Notification* GetDisplayNotification() const; | 95 const message_center::Notification* GetDisplayNotification() const; |
| 95 | 96 |
| 96 // Weak reference, owned by Shell. | 97 // Weak reference, owned by Shell. |
| 97 SystemTray* tray_; | 98 SystemTray* tray_; |
| 98 | 99 |
| 99 // Weak reference, owned by |tray_|. | 100 // Weak reference, owned by |tray_|. |
| 100 TrayDisplay* tray_display_; | 101 TrayDisplay* tray_display_; |
| 101 | 102 |
| 102 DISALLOW_COPY_AND_ASSIGN(TrayDisplayTest); | 103 DISALLOW_COPY_AND_ASSIGN(TrayDisplayTest); |
| 103 }; | 104 }; |
| 104 | 105 |
| 105 TrayDisplayTest::TrayDisplayTest() : tray_(NULL), tray_display_(NULL) { | 106 TrayDisplayTest::TrayDisplayTest() : tray_(NULL), tray_display_(NULL) { |
| 106 } | 107 } |
| 107 | 108 |
| 108 TrayDisplayTest::~TrayDisplayTest() { | 109 TrayDisplayTest::~TrayDisplayTest() { |
| 109 } | 110 } |
| 110 | 111 |
| 111 void TrayDisplayTest::SetUp() { | 112 void TrayDisplayTest::SetUp() { |
| 112 ash::test::AshTestBase::SetUp(); | 113 ash::test::AshTestBase::SetUp(); |
| 113 tray_ = Shell::GetPrimaryRootWindowController()->GetSystemTray(); | 114 // Populate tray_ and tray_display_. |
| 114 tray_display_ = new TrayDisplay(tray_); | 115 CheckUpdate(); |
| 115 tray_->AddTrayItem(tray_display_); | 116 } |
| 117 |
| 118 SystemTray* TrayDisplayTest::GetTray() { |
| 119 CheckUpdate(); |
| 120 return tray_; |
| 121 } |
| 122 |
| 123 TrayDisplay* TrayDisplayTest::GetTrayDisplay() { |
| 124 CheckUpdate(); |
| 125 return tray_display_; |
| 126 } |
| 127 |
| 128 void TrayDisplayTest::CheckUpdate() { |
| 129 SystemTray* current = |
| 130 Shell::GetPrimaryRootWindowController()->GetSystemTray(); |
| 131 if (tray_ != current) { |
| 132 tray_ = current; |
| 133 tray_display_ = new TrayDisplay(tray_); |
| 134 tray_->AddTrayItem(tray_display_); |
| 135 } |
| 116 } | 136 } |
| 117 | 137 |
| 118 void TrayDisplayTest::CloseNotification() { | 138 void TrayDisplayTest::CloseNotification() { |
| 119 message_center::MessageCenter::Get()->RemoveNotification( | 139 message_center::MessageCenter::Get()->RemoveNotification( |
| 120 TrayDisplay::kNotificationId, false); | 140 TrayDisplay::kNotificationId, false); |
| 121 RunAllPendingInMessageLoop(); | 141 RunAllPendingInMessageLoop(); |
| 122 } | 142 } |
| 123 | 143 |
| 124 bool TrayDisplayTest::IsDisplayVisibleInTray() const { | 144 bool TrayDisplayTest::IsDisplayVisibleInTray() const { |
| 125 return tray_->HasSystemBubble() && | 145 return tray_->HasSystemBubble() && |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 notifications.begin(); iter != notifications.end(); ++iter) { | 187 notifications.begin(); iter != notifications.end(); ++iter) { |
| 168 if ((*iter)->id() == TrayDisplay::kNotificationId) | 188 if ((*iter)->id() == TrayDisplay::kNotificationId) |
| 169 return *iter; | 189 return *iter; |
| 170 } | 190 } |
| 171 | 191 |
| 172 return NULL; | 192 return NULL; |
| 173 } | 193 } |
| 174 | 194 |
| 175 TEST_F(TrayDisplayTest, NoInternalDisplay) { | 195 TEST_F(TrayDisplayTest, NoInternalDisplay) { |
| 176 UpdateDisplay("400x400"); | 196 UpdateDisplay("400x400"); |
| 177 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 197 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 178 EXPECT_FALSE(IsDisplayVisibleInTray()); | 198 EXPECT_FALSE(IsDisplayVisibleInTray()); |
| 179 | 199 |
| 180 UpdateDisplay("400x400,200x200"); | 200 UpdateDisplay("400x400,200x200"); |
| 181 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 201 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 182 EXPECT_TRUE(IsDisplayVisibleInTray()); | 202 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 183 base::string16 expected = l10n_util::GetStringUTF16( | 203 base::string16 expected = l10n_util::GetStringUTF16( |
| 184 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL); | 204 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL); |
| 185 base::string16 first_name = GetFirstDisplayName(); | 205 base::string16 first_name = GetFirstDisplayName(); |
| 186 EXPECT_EQ(expected, GetTrayDisplayText()); | 206 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 187 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", | 207 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", |
| 188 GetSecondDisplayName(), "200x200"), | 208 GetSecondDisplayName(), "200x200"), |
| 189 GetTrayDisplayTooltipText()); | 209 GetTrayDisplayTooltipText()); |
| 190 CheckAccessibleName(); | 210 CheckAccessibleName(); |
| 191 | 211 |
| 192 // mirroring | 212 // mirroring |
| 193 Shell::GetInstance()->display_manager()->SetSoftwareMirroring(true); | 213 Shell::GetInstance()->display_manager()->SetSoftwareMirroring(true); |
| 194 UpdateDisplay("400x400,200x200"); | 214 UpdateDisplay("400x400,200x200"); |
| 195 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 215 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 196 EXPECT_TRUE(IsDisplayVisibleInTray()); | 216 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 197 expected = l10n_util::GetStringUTF16( | 217 expected = l10n_util::GetStringUTF16( |
| 198 IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING_NO_INTERNAL); | 218 IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING_NO_INTERNAL); |
| 199 EXPECT_EQ(expected, GetTrayDisplayText()); | 219 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 200 EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "400x400"), | 220 EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "400x400"), |
| 201 GetTrayDisplayTooltipText()); | 221 GetTrayDisplayTooltipText()); |
| 202 CheckAccessibleName(); | 222 CheckAccessibleName(); |
| 203 } | 223 } |
| 204 | 224 |
| 205 TEST_F(TrayDisplayTest, InternalDisplay) { | 225 TEST_F(TrayDisplayTest, InternalDisplay) { |
| 206 UpdateDisplay("400x400"); | 226 UpdateDisplay("400x400"); |
| 207 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | 227 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 208 gfx::Display::SetInternalDisplayId(display_manager->first_display_id()); | 228 gfx::Display::SetInternalDisplayId(display_manager->first_display_id()); |
| 209 | 229 |
| 210 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 230 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 211 EXPECT_FALSE(IsDisplayVisibleInTray()); | 231 EXPECT_FALSE(IsDisplayVisibleInTray()); |
| 212 | 232 |
| 213 // Extended | 233 // Extended |
| 214 UpdateDisplay("400x400,200x200"); | 234 UpdateDisplay("400x400,200x200"); |
| 215 base::string16 expected = l10n_util::GetStringFUTF16( | 235 base::string16 expected = l10n_util::GetStringFUTF16( |
| 216 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, GetSecondDisplayName()); | 236 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, GetSecondDisplayName()); |
| 217 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 237 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 218 EXPECT_TRUE(IsDisplayVisibleInTray()); | 238 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 219 EXPECT_EQ(expected, GetTrayDisplayText()); | 239 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 220 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", | 240 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", |
| 221 GetSecondDisplayName(), "200x200"), | 241 GetSecondDisplayName(), "200x200"), |
| 222 GetTrayDisplayTooltipText()); | 242 GetTrayDisplayTooltipText()); |
| 223 CheckAccessibleName(); | 243 CheckAccessibleName(); |
| 224 | 244 |
| 225 // Mirroring | 245 // Mirroring |
| 226 display_manager->SetSoftwareMirroring(true); | 246 display_manager->SetSoftwareMirroring(true); |
| 227 UpdateDisplay("400x400,200x200"); | 247 UpdateDisplay("400x400,200x200"); |
| 228 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 248 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 229 EXPECT_TRUE(IsDisplayVisibleInTray()); | 249 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 230 | 250 |
| 231 expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, | 251 expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, |
| 232 GetMirroringDisplayName()); | 252 GetMirroringDisplayName()); |
| 233 EXPECT_EQ(expected, GetTrayDisplayText()); | 253 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 234 EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "400x400"), | 254 EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "400x400"), |
| 235 GetTrayDisplayTooltipText()); | 255 GetTrayDisplayTooltipText()); |
| 236 CheckAccessibleName(); | 256 CheckAccessibleName(); |
| 237 } | 257 } |
| 238 | 258 |
| 239 TEST_F(TrayDisplayTest, InternalDisplayResized) { | 259 TEST_F(TrayDisplayTest, InternalDisplayResized) { |
| 240 UpdateDisplay("400x400@1.5"); | 260 UpdateDisplay("400x400@1.5"); |
| 241 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | 261 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 242 gfx::Display::SetInternalDisplayId(display_manager->first_display_id()); | 262 gfx::Display::SetInternalDisplayId(display_manager->first_display_id()); |
| 243 | 263 |
| 244 // Shows the tray_display even though there's a single-display. | 264 // Shows the tray_display even though there's a single-display. |
| 245 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 265 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 246 EXPECT_TRUE(IsDisplayVisibleInTray()); | 266 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 247 base::string16 internal_info = l10n_util::GetStringFUTF16( | 267 base::string16 internal_info = l10n_util::GetStringFUTF16( |
| 248 IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, | 268 IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, |
| 249 GetFirstDisplayName(), base::UTF8ToUTF16("600x600")); | 269 GetFirstDisplayName(), base::UTF8ToUTF16("600x600")); |
| 250 EXPECT_EQ(internal_info, GetTrayDisplayText()); | 270 EXPECT_EQ(internal_info, GetTrayDisplayText()); |
| 251 EXPECT_EQ(GetTooltipText(base::string16(), GetFirstDisplayName(), "600x600", | 271 EXPECT_EQ(GetTooltipText(base::string16(), GetFirstDisplayName(), "600x600", |
| 252 base::string16(), std::string()), | 272 base::string16(), std::string()), |
| 253 GetTrayDisplayTooltipText()); | 273 GetTrayDisplayTooltipText()); |
| 254 CheckAccessibleName(); | 274 CheckAccessibleName(); |
| 255 | 275 |
| 256 // Extended | 276 // Extended |
| 257 UpdateDisplay("400x400@1.5,200x200"); | 277 UpdateDisplay("400x400@1.5,200x200"); |
| 258 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 278 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 259 EXPECT_TRUE(IsDisplayVisibleInTray()); | 279 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 260 base::string16 expected = l10n_util::GetStringFUTF16( | 280 base::string16 expected = l10n_util::GetStringFUTF16( |
| 261 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, GetSecondDisplayName()); | 281 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, GetSecondDisplayName()); |
| 262 EXPECT_EQ(expected, GetTrayDisplayText()); | 282 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 263 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "600x600", | 283 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "600x600", |
| 264 GetSecondDisplayName(), "200x200"), | 284 GetSecondDisplayName(), "200x200"), |
| 265 GetTrayDisplayTooltipText()); | 285 GetTrayDisplayTooltipText()); |
| 266 CheckAccessibleName(); | 286 CheckAccessibleName(); |
| 267 | 287 |
| 268 // Mirroring | 288 // Mirroring |
| 269 display_manager->SetSoftwareMirroring(true); | 289 display_manager->SetSoftwareMirroring(true); |
| 270 UpdateDisplay("400x400@1.5,200x200"); | 290 UpdateDisplay("400x400@1.5,200x200"); |
| 271 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 291 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 272 EXPECT_TRUE(IsDisplayVisibleInTray()); | 292 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 273 expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, | 293 expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, |
| 274 GetMirroringDisplayName()); | 294 GetMirroringDisplayName()); |
| 275 EXPECT_EQ(expected, GetTrayDisplayText()); | 295 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 276 EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "600x600"), | 296 EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "600x600"), |
| 277 GetTrayDisplayTooltipText()); | 297 GetTrayDisplayTooltipText()); |
| 278 CheckAccessibleName(); | 298 CheckAccessibleName(); |
| 279 | 299 |
| 280 // Closed lid mode. | 300 // Closed lid mode. |
| 281 display_manager->SetSoftwareMirroring(false); | 301 display_manager->SetSoftwareMirroring(false); |
| 282 UpdateDisplay("400x400@1.5,200x200"); | 302 UpdateDisplay("400x400@1.5,200x200"); |
| 283 gfx::Display::SetInternalDisplayId(ScreenUtil::GetSecondaryDisplay().id()); | 303 gfx::Display::SetInternalDisplayId(ScreenUtil::GetSecondaryDisplay().id()); |
| 284 UpdateDisplay("400x400@1.5"); | 304 UpdateDisplay("400x400@1.5"); |
| 285 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 305 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 286 EXPECT_TRUE(IsDisplayVisibleInTray()); | 306 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 287 expected = l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED); | 307 expected = l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED); |
| 288 EXPECT_EQ(expected, GetTrayDisplayText()); | 308 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 289 EXPECT_EQ( | 309 EXPECT_EQ( |
| 290 GetTooltipText( | 310 GetTooltipText( |
| 291 expected, GetFirstDisplayName(), "600x600", base::string16(), ""), | 311 expected, GetFirstDisplayName(), "600x600", base::string16(), ""), |
| 292 GetTrayDisplayTooltipText()); | 312 GetTrayDisplayTooltipText()); |
| 293 CheckAccessibleName(); | 313 CheckAccessibleName(); |
| 314 |
| 315 // Unified mode |
| 316 display_manager->SetDefaultMultiDisplayMode(DisplayManager::UNIFIED); |
| 317 display_manager->SetMultiDisplayMode(DisplayManager::UNIFIED); |
| 318 UpdateDisplay("300x200,400x500"); |
| 319 // Update the cache variables as the primary root window changed. |
| 320 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 321 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 322 expected = l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_UNIFIED); |
| 323 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 294 } | 324 } |
| 295 | 325 |
| 296 TEST_F(TrayDisplayTest, ExternalDisplayResized) { | 326 TEST_F(TrayDisplayTest, ExternalDisplayResized) { |
| 297 UpdateDisplay("400x400"); | 327 UpdateDisplay("400x400"); |
| 298 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | 328 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 299 gfx::Display::SetInternalDisplayId(display_manager->first_display_id()); | 329 gfx::Display::SetInternalDisplayId(display_manager->first_display_id()); |
| 300 | 330 |
| 301 // Shows the tray_display even though there's a single-display. | 331 // Shows the tray_display even though there's a single-display. |
| 302 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 332 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 303 EXPECT_FALSE(IsDisplayVisibleInTray()); | 333 EXPECT_FALSE(IsDisplayVisibleInTray()); |
| 304 | 334 |
| 305 // Extended | 335 // Extended |
| 306 UpdateDisplay("400x400,200x200@1.5"); | 336 UpdateDisplay("400x400,200x200@1.5"); |
| 307 const gfx::Display& secondary_display = ScreenUtil::GetSecondaryDisplay(); | 337 const gfx::Display& secondary_display = ScreenUtil::GetSecondaryDisplay(); |
| 308 | 338 |
| 309 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 339 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 310 EXPECT_TRUE(IsDisplayVisibleInTray()); | 340 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 311 base::string16 expected = l10n_util::GetStringFUTF16( | 341 base::string16 expected = l10n_util::GetStringFUTF16( |
| 312 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, | 342 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
| 313 l10n_util::GetStringFUTF16( | 343 l10n_util::GetStringFUTF16( |
| 314 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, | 344 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, |
| 315 GetSecondDisplayName(), | 345 GetSecondDisplayName(), |
| 316 base::UTF8ToUTF16(secondary_display.size().ToString()))); | 346 base::UTF8ToUTF16(secondary_display.size().ToString()))); |
| 317 EXPECT_EQ(expected, GetTrayDisplayText()); | 347 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 318 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", | 348 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", |
| 319 GetSecondDisplayName(), "300x300"), | 349 GetSecondDisplayName(), "300x300"), |
| 320 GetTrayDisplayTooltipText()); | 350 GetTrayDisplayTooltipText()); |
| 321 CheckAccessibleName(); | 351 CheckAccessibleName(); |
| 322 | 352 |
| 323 // Mirroring | 353 // Mirroring |
| 324 display_manager->SetSoftwareMirroring(true); | 354 display_manager->SetSoftwareMirroring(true); |
| 325 UpdateDisplay("400x400,200x200@1.5"); | 355 UpdateDisplay("400x400,200x200@1.5"); |
| 326 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 356 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 327 EXPECT_TRUE(IsDisplayVisibleInTray()); | 357 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 328 expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, | 358 expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, |
| 329 GetMirroringDisplayName()); | 359 GetMirroringDisplayName()); |
| 330 EXPECT_EQ(expected, GetTrayDisplayText()); | 360 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 331 EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "400x400"), | 361 EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "400x400"), |
| 332 GetTrayDisplayTooltipText()); | 362 GetTrayDisplayTooltipText()); |
| 333 CheckAccessibleName(); | 363 CheckAccessibleName(); |
| 334 } | 364 } |
| 335 | 365 |
| 336 TEST_F(TrayDisplayTest, OverscanDisplay) { | 366 TEST_F(TrayDisplayTest, OverscanDisplay) { |
| 337 UpdateDisplay("400x400,300x300/o"); | 367 UpdateDisplay("400x400,300x300/o"); |
| 338 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | 368 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 339 gfx::Display::SetInternalDisplayId(display_manager->first_display_id()); | 369 gfx::Display::SetInternalDisplayId(display_manager->first_display_id()); |
| 340 | 370 |
| 341 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 371 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 342 EXPECT_TRUE(IsDisplayVisibleInTray()); | 372 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 343 | 373 |
| 344 // /o creates the default overscan, and if overscan is set, the annotation | 374 // /o creates the default overscan, and if overscan is set, the annotation |
| 345 // should be the size. | 375 // should be the size. |
| 346 base::string16 overscan = l10n_util::GetStringUTF16( | 376 base::string16 overscan = l10n_util::GetStringUTF16( |
| 347 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION_OVERSCAN); | 377 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION_OVERSCAN); |
| 348 base::string16 headline = l10n_util::GetStringFUTF16( | 378 base::string16 headline = l10n_util::GetStringFUTF16( |
| 349 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, | 379 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
| 350 l10n_util::GetStringFUTF16( | 380 l10n_util::GetStringFUTF16( |
| 351 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, | 381 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, |
| (...skipping 15 matching lines...) Expand all Loading... |
| 367 GetSecondDisplayName(), overscan)); | 397 GetSecondDisplayName(), overscan)); |
| 368 second_data = l10n_util::GetStringFUTF8( | 398 second_data = l10n_util::GetStringFUTF8( |
| 369 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION, | 399 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION, |
| 370 base::UTF8ToUTF16("300x300"), overscan); | 400 base::UTF8ToUTF16("300x300"), overscan); |
| 371 EXPECT_EQ(GetTooltipText(headline, GetFirstDisplayName(), "400x400", | 401 EXPECT_EQ(GetTooltipText(headline, GetFirstDisplayName(), "400x400", |
| 372 GetSecondDisplayName(), second_data), | 402 GetSecondDisplayName(), second_data), |
| 373 GetTrayDisplayTooltipText()); | 403 GetTrayDisplayTooltipText()); |
| 374 } | 404 } |
| 375 | 405 |
| 376 TEST_F(TrayDisplayTest, UpdateDuringDisplayConfigurationChange) { | 406 TEST_F(TrayDisplayTest, UpdateDuringDisplayConfigurationChange) { |
| 377 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 407 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 378 EXPECT_FALSE(IsDisplayVisibleInTray()); | 408 EXPECT_FALSE(IsDisplayVisibleInTray()); |
| 379 | 409 |
| 380 UpdateDisplay("400x400@1.5"); | 410 UpdateDisplay("400x400@1.5"); |
| 381 EXPECT_TRUE(tray()->HasSystemBubble()); | 411 EXPECT_TRUE(GetTray()->HasSystemBubble()); |
| 382 EXPECT_TRUE(IsDisplayVisibleInTray()); | 412 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 383 base::string16 internal_info = l10n_util::GetStringFUTF16( | 413 base::string16 internal_info = l10n_util::GetStringFUTF16( |
| 384 IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, | 414 IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, |
| 385 GetFirstDisplayName(), base::UTF8ToUTF16("600x600")); | 415 GetFirstDisplayName(), base::UTF8ToUTF16("600x600")); |
| 386 EXPECT_EQ(internal_info, GetTrayDisplayText()); | 416 EXPECT_EQ(internal_info, GetTrayDisplayText()); |
| 387 EXPECT_EQ(GetTooltipText(base::string16(), GetFirstDisplayName(), "600x600", | 417 EXPECT_EQ(GetTooltipText(base::string16(), GetFirstDisplayName(), "600x600", |
| 388 base::string16(), std::string()), | 418 base::string16(), std::string()), |
| 389 GetTrayDisplayTooltipText()); | 419 GetTrayDisplayTooltipText()); |
| 390 CheckAccessibleName(); | 420 CheckAccessibleName(); |
| 391 | 421 |
| 392 UpdateDisplay("400x400,200x200"); | 422 UpdateDisplay("400x400,200x200"); |
| 393 EXPECT_TRUE(tray()->HasSystemBubble()); | 423 EXPECT_TRUE(GetTray()->HasSystemBubble()); |
| 394 EXPECT_TRUE(IsDisplayVisibleInTray()); | 424 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 395 base::string16 expected = l10n_util::GetStringUTF16( | 425 base::string16 expected = l10n_util::GetStringUTF16( |
| 396 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL); | 426 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL); |
| 397 base::string16 first_name = GetFirstDisplayName(); | 427 base::string16 first_name = GetFirstDisplayName(); |
| 398 EXPECT_EQ(expected, GetTrayDisplayText()); | 428 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 399 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", | 429 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", |
| 400 GetSecondDisplayName(), "200x200"), | 430 GetSecondDisplayName(), "200x200"), |
| 401 GetTrayDisplayTooltipText()); | 431 GetTrayDisplayTooltipText()); |
| 402 CheckAccessibleName(); | 432 CheckAccessibleName(); |
| 403 | 433 |
| 404 UpdateDisplay("400x400@1.5"); | 434 UpdateDisplay("400x400@1.5"); |
| 405 tray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 435 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 406 | 436 |
| 407 // Back to the default state, the display tray item should disappear. | 437 // Back to the default state, the display tray item should disappear. |
| 408 UpdateDisplay("400x400"); | 438 UpdateDisplay("400x400"); |
| 409 EXPECT_TRUE(tray()->HasSystemBubble()); | 439 EXPECT_TRUE(GetTray()->HasSystemBubble()); |
| 410 EXPECT_FALSE(IsDisplayVisibleInTray()); | 440 EXPECT_FALSE(IsDisplayVisibleInTray()); |
| 411 } | 441 } |
| 412 | 442 |
| 413 TEST_F(TrayDisplayTest, DisplayNotifications) { | 443 TEST_F(TrayDisplayTest, DisplayNotifications) { |
| 414 test::TestSystemTrayDelegate* tray_delegate = | 444 test::TestSystemTrayDelegate* tray_delegate = |
| 415 static_cast<test::TestSystemTrayDelegate*>( | 445 static_cast<test::TestSystemTrayDelegate*>( |
| 416 Shell::GetInstance()->system_tray_delegate()); | 446 Shell::GetInstance()->system_tray_delegate()); |
| 417 tray_delegate->set_should_show_display_notification(true); | 447 tray_delegate->set_should_show_display_notification(true); |
| 418 | 448 |
| 419 UpdateDisplay("400x400"); | 449 UpdateDisplay("400x400"); |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 527 | 557 |
| 528 UpdateDisplay("400x400,200x200"); | 558 UpdateDisplay("400x400,200x200"); |
| 529 EXPECT_EQ( | 559 EXPECT_EQ( |
| 530 l10n_util::GetStringUTF16( | 560 l10n_util::GetStringUTF16( |
| 531 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL), | 561 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL), |
| 532 GetDisplayNotificationText()); | 562 GetDisplayNotificationText()); |
| 533 | 563 |
| 534 // OnDisplayConfigurationChanged() may be called more than once for a single | 564 // OnDisplayConfigurationChanged() may be called more than once for a single |
| 535 // update display in case of primary is swapped or recovered from dock mode. | 565 // update display in case of primary is swapped or recovered from dock mode. |
| 536 // Should not remove the notification in such case. | 566 // Should not remove the notification in such case. |
| 537 tray_display()->OnDisplayConfigurationChanged(); | 567 GetTrayDisplay()->OnDisplayConfigurationChanged(); |
| 538 EXPECT_EQ( | 568 EXPECT_EQ( |
| 539 l10n_util::GetStringUTF16( | 569 l10n_util::GetStringUTF16( |
| 540 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL), | 570 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL), |
| 541 GetDisplayNotificationText()); | 571 GetDisplayNotificationText()); |
| 542 | 572 |
| 543 // Back to the single display. It SHOULD remove the notification since the | 573 // Back to the single display. It SHOULD remove the notification since the |
| 544 // information is stale. | 574 // information is stale. |
| 545 UpdateDisplay("400x400"); | 575 UpdateDisplay("400x400"); |
| 546 EXPECT_TRUE(GetDisplayNotificationText().empty()); | 576 EXPECT_TRUE(GetDisplayNotificationText().empty()); |
| 547 } | 577 } |
| 548 | 578 |
| 549 TEST_F(TrayDisplayTest, UpdateAfterSuppressDisplayNotification) { | 579 TEST_F(TrayDisplayTest, UpdateAfterSuppressDisplayNotification) { |
| 550 UpdateDisplay("400x400,200x200"); | 580 UpdateDisplay("400x400,200x200"); |
| 551 | 581 |
| 552 test::TestSystemTrayDelegate* tray_delegate = | 582 test::TestSystemTrayDelegate* tray_delegate = |
| 553 static_cast<test::TestSystemTrayDelegate*>( | 583 static_cast<test::TestSystemTrayDelegate*>( |
| 554 Shell::GetInstance()->system_tray_delegate()); | 584 Shell::GetInstance()->system_tray_delegate()); |
| 555 tray_delegate->set_should_show_display_notification(true); | 585 tray_delegate->set_should_show_display_notification(true); |
| 556 | 586 |
| 557 // rotate the second. | 587 // rotate the second. |
| 558 UpdateDisplay("400x400,200x200/r"); | 588 UpdateDisplay("400x400,200x200/r"); |
| 559 EXPECT_EQ(l10n_util::GetStringFUTF16( | 589 EXPECT_EQ(l10n_util::GetStringFUTF16( |
| 560 IDS_ASH_STATUS_TRAY_DISPLAY_ROTATED, GetSecondDisplayName(), | 590 IDS_ASH_STATUS_TRAY_DISPLAY_ROTATED, GetSecondDisplayName(), |
| 561 l10n_util::GetStringUTF16( | 591 l10n_util::GetStringUTF16( |
| 562 IDS_ASH_STATUS_TRAY_DISPLAY_ORIENTATION_90)), | 592 IDS_ASH_STATUS_TRAY_DISPLAY_ORIENTATION_90)), |
| 563 GetDisplayNotificationAdditionalText()); | 593 GetDisplayNotificationAdditionalText()); |
| 564 } | 594 } |
| 565 | 595 |
| 566 } // namespace ash | 596 } // namespace ash |
| OLD | NEW |