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

Side by Side Diff: athena/content/app_activity_unittest.cc

Issue 548633005: Adding overview / layer framework to Activities so that unloaded / sleeping activities can be shown… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Created 6 years, 3 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
OLDNEW
1 /// Copyright 2014 The Chromium Authors. All rights reserved. 1 /// Copyright 2014 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 "athena/activity/public/activity_factory.h" 5 #include "athena/activity/public/activity_factory.h"
6 #include "athena/activity/public/activity_manager.h" 6 #include "athena/activity/public/activity_manager.h"
7 #include "athena/content/app_activity.h" 7 #include "athena/content/app_activity.h"
8 #include "athena/content/app_activity_registry.h" 8 #include "athena/content/app_activity_registry.h"
9 #include "athena/content/public/app_registry.h" 9 #include "athena/content/public/app_registry.h"
10 #include "athena/extensions/public/extensions_delegate.h" 10 #include "athena/extensions/public/extensions_delegate.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 69
70 // AppActivity: 70 // AppActivity:
71 virtual content::WebContents* GetWebContents() OVERRIDE { return NULL; } 71 virtual content::WebContents* GetWebContents() OVERRIDE { return NULL; }
72 72
73 // ActivityViewModel: 73 // ActivityViewModel:
74 virtual void Init() OVERRIDE {} 74 virtual void Init() OVERRIDE {}
75 virtual SkColor GetRepresentativeColor() const OVERRIDE { return 0; } 75 virtual SkColor GetRepresentativeColor() const OVERRIDE { return 0; }
76 virtual base::string16 GetTitle() const OVERRIDE { return title_; } 76 virtual base::string16 GetTitle() const OVERRIDE { return title_; }
77 virtual bool UsesFrame() const OVERRIDE { return true; } 77 virtual bool UsesFrame() const OVERRIDE { return true; }
78 virtual views::View* GetContentsView() OVERRIDE { return view_; } 78 virtual views::View* GetContentsView() OVERRIDE { return view_; }
79 virtual void CreateOverviewModeImage() OVERRIDE {} 79 virtual gfx::ImageSkia GetOverviewModeImage() OVERRIDE {
80 return gfx::ImageSkia();
81 }
80 82
81 private: 83 private:
82 // If known the registry which holds all activities for the associated app. 84 // If known the registry which holds all activities for the associated app.
83 AppActivityRegistry* app_activity_registry_; 85 AppActivityRegistry* app_activity_registry_;
84 86
85 // The title of the activity. 87 // The title of the activity.
86 base::string16 title_; 88 base::string16 title_;
87 89
88 // Our view. 90 // Our view.
89 views::View* view_; 91 views::View* view_;
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); 272 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1);
271 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 273 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications());
272 AppActivityRegistry* app_activity_registry = 274 AppActivityRegistry* app_activity_registry =
273 app_activity->app_activity_registry(); 275 app_activity->app_activity_registry();
274 EXPECT_EQ(1, app_activity_registry->NumberOfActivities()); 276 EXPECT_EQ(1, app_activity_registry->NumberOfActivities());
275 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity->GetCurrentState()); 277 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity->GetCurrentState());
276 278
277 // Calling Unload now should not do anything since at least one activity in 279 // Calling Unload now should not do anything since at least one activity in
278 // the registry is still visible. 280 // the registry is still visible.
279 app_activity_registry->Unload(); 281 app_activity_registry->Unload();
282 RunAllPendingInMessageLoop();
280 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); 283 EXPECT_EQ(0, test_extensions_delegate()->unload_called());
281 284
282 // After setting our activity to unloaded however the application should get 285 // After setting our activity to unloaded however the application should get
283 // unloaded as requested. 286 // unloaded as requested.
284 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); 287 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED);
285 app_activity_registry->Unload(); 288 app_activity_registry->Unload();
289 RunAllPendingInMessageLoop();
286 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); 290 EXPECT_EQ(1, test_extensions_delegate()->unload_called());
287 291
288 // Check that our created application is gone, and instead a proxy got 292 // Check that our created application is gone, and instead a proxy got
289 // created. 293 // created.
290 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 294 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications());
291 ASSERT_EQ(app_activity_registry, 295 ASSERT_EQ(app_activity_registry,
292 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); 296 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL));
293 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); 297 EXPECT_EQ(0, app_activity_registry->NumberOfActivities());
294 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); 298 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy();
295 ASSERT_TRUE(activity_proxy); 299 ASSERT_TRUE(activity_proxy);
(...skipping 21 matching lines...) Expand all
317 EXPECT_EQ(2, GetActivityPosition(app_activity2b)); 321 EXPECT_EQ(2, GetActivityPosition(app_activity2b));
318 EXPECT_EQ(1, GetActivityPosition(app_activity2a)); 322 EXPECT_EQ(1, GetActivityPosition(app_activity2a));
319 EXPECT_EQ(0, GetActivityPosition(app_activity1a)); 323 EXPECT_EQ(0, GetActivityPosition(app_activity1a));
320 324
321 // Unload an app and make sure that the proxy is in the newest activity slot. 325 // Unload an app and make sure that the proxy is in the newest activity slot.
322 AppActivityRegistry* app_activity_registry = 326 AppActivityRegistry* app_activity_registry =
323 app_activity2a->app_activity_registry(); 327 app_activity2a->app_activity_registry();
324 app_activity2a->SetCurrentState(Activity::ACTIVITY_UNLOADED); 328 app_activity2a->SetCurrentState(Activity::ACTIVITY_UNLOADED);
325 app_activity2b->SetCurrentState(Activity::ACTIVITY_UNLOADED); 329 app_activity2b->SetCurrentState(Activity::ACTIVITY_UNLOADED);
326 app_activity2a->app_activity_registry()->Unload(); 330 app_activity2a->app_activity_registry()->Unload();
331 RunAllPendingInMessageLoop();
327 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); 332 EXPECT_EQ(0, app_activity_registry->NumberOfActivities());
328 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); 333 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy();
329 RunAllPendingInMessageLoop(); 334 RunAllPendingInMessageLoop();
330 335
331 EXPECT_EQ(2, GetActivityPosition(app_activity1b)); 336 EXPECT_EQ(2, GetActivityPosition(app_activity1b));
332 EXPECT_EQ(1, GetActivityPosition(activity_proxy)); 337 EXPECT_EQ(1, GetActivityPosition(activity_proxy));
333 EXPECT_EQ(0, GetActivityPosition(app_activity1a)); 338 EXPECT_EQ(0, GetActivityPosition(app_activity1a));
334 EXPECT_EQ(0, test_extensions_delegate()->restart_called()); 339 EXPECT_EQ(0, test_extensions_delegate()->restart_called());
335 340
336 DeleteActivity(activity_proxy); 341 DeleteActivity(activity_proxy);
(...skipping 17 matching lines...) Expand all
354 EXPECT_EQ(app_activity_registry, app_activity2->app_activity_registry()); 359 EXPECT_EQ(app_activity_registry, app_activity2->app_activity_registry());
355 EXPECT_EQ(app_activity_registry, app_activity3->app_activity_registry()); 360 EXPECT_EQ(app_activity_registry, app_activity3->app_activity_registry());
356 EXPECT_EQ(3, app_activity_registry->NumberOfActivities()); 361 EXPECT_EQ(3, app_activity_registry->NumberOfActivities());
357 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity1->GetCurrentState()); 362 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity1->GetCurrentState());
358 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity2->GetCurrentState()); 363 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity2->GetCurrentState());
359 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity3->GetCurrentState()); 364 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity3->GetCurrentState());
360 365
361 // After setting all activities to UNLOADED the application should unload. 366 // After setting all activities to UNLOADED the application should unload.
362 app_activity1->SetCurrentState(Activity::ACTIVITY_UNLOADED); 367 app_activity1->SetCurrentState(Activity::ACTIVITY_UNLOADED);
363 app_activity1->app_activity_registry()->Unload(); 368 app_activity1->app_activity_registry()->Unload();
369 RunAllPendingInMessageLoop();
364 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); 370 EXPECT_EQ(0, test_extensions_delegate()->unload_called());
365 app_activity2->SetCurrentState(Activity::ACTIVITY_UNLOADED); 371 app_activity2->SetCurrentState(Activity::ACTIVITY_UNLOADED);
366 app_activity2->app_activity_registry()->Unload(); 372 app_activity2->app_activity_registry()->Unload();
373 RunAllPendingInMessageLoop();
367 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); 374 EXPECT_EQ(0, test_extensions_delegate()->unload_called());
368 app_activity3->SetCurrentState(Activity::ACTIVITY_UNLOADED); 375 app_activity3->SetCurrentState(Activity::ACTIVITY_UNLOADED);
369 app_activity3->app_activity_registry()->Unload(); 376 app_activity3->app_activity_registry()->Unload();
377 RunAllPendingInMessageLoop();
370 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); 378 EXPECT_EQ(1, test_extensions_delegate()->unload_called());
371 379
372 // Now there should only be the proxy activity left. 380 // Now there should only be the proxy activity left.
373 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 381 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications());
374 ASSERT_EQ(app_activity_registry, 382 ASSERT_EQ(app_activity_registry,
375 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); 383 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL));
376 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); 384 EXPECT_EQ(0, app_activity_registry->NumberOfActivities());
377 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); 385 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy();
378 ASSERT_TRUE(activity_proxy); 386 ASSERT_TRUE(activity_proxy);
379 EXPECT_NE(app_activity1, activity_proxy); 387 EXPECT_NE(app_activity1, activity_proxy);
(...skipping 18 matching lines...) Expand all
398 DisableResourceManager(); 406 DisableResourceManager();
399 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); 407 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications());
400 408
401 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); 409 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1);
402 AppActivityRegistry* app_activity_registry = 410 AppActivityRegistry* app_activity_registry =
403 app_activity->app_activity_registry(); 411 app_activity->app_activity_registry();
404 412
405 // Unload the activity. 413 // Unload the activity.
406 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); 414 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED);
407 app_activity_registry->Unload(); 415 app_activity_registry->Unload();
416 RunAllPendingInMessageLoop();
408 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); 417 EXPECT_EQ(1, test_extensions_delegate()->unload_called());
409 418
410 // Try to activate the activity again. This will force the application to 419 // Try to activate the activity again. This will force the application to
411 // reload. 420 // reload.
412 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); 421 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy();
413 activity_proxy->SetCurrentState(Activity::ACTIVITY_VISIBLE); 422 activity_proxy->SetCurrentState(Activity::ACTIVITY_VISIBLE);
414 EXPECT_EQ(1, test_extensions_delegate()->restart_called()); 423 EXPECT_EQ(1, test_extensions_delegate()->restart_called());
415 424
416 // However - the restart in this test framework does not really restart and 425 // However - the restart in this test framework does not really restart and
417 // all objects should be still there.. 426 // all objects should be still there..
418 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 427 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications());
419 EXPECT_TRUE(app_activity_registry->unloaded_activity_proxy()); 428 EXPECT_TRUE(app_activity_registry->unloaded_activity_proxy());
420 Activity::Delete(app_activity_registry->unloaded_activity_proxy()); 429 Activity::Delete(app_activity_registry->unloaded_activity_proxy());
421 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); 430 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications());
422 } 431 }
423 432
424 } // namespace test 433 } // namespace test
425 } // namespace athena 434 } // namespace athena
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698