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

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: Rebased, fixed resulting problems and addressed comments 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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 // AppActivity: 70 // AppActivity:
71 virtual views::WebView* GetWebView() OVERRIDE { return NULL; } 71 virtual views::WebView* GetWebView() 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 views::Widget* CreateWidget() OVERRIDE { return NULL; } 79 virtual views::Widget* CreateWidget() OVERRIDE { return NULL; }
80 virtual void CreateOverviewModeImage() OVERRIDE {} 80 virtual gfx::ImageSkia GetOverviewModeImage() OVERRIDE {
81 return gfx::ImageSkia();
82 }
81 83
82 private: 84 private:
83 // If known the registry which holds all activities for the associated app. 85 // If known the registry which holds all activities for the associated app.
84 AppActivityRegistry* app_activity_registry_; 86 AppActivityRegistry* app_activity_registry_;
85 87
86 // The title of the activity. 88 // The title of the activity.
87 base::string16 title_; 89 base::string16 title_;
88 90
89 // Our view. 91 // Our view.
90 views::View* view_; 92 views::View* view_;
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); 273 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1);
272 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 274 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications());
273 AppActivityRegistry* app_activity_registry = 275 AppActivityRegistry* app_activity_registry =
274 app_activity->app_activity_registry(); 276 app_activity->app_activity_registry();
275 EXPECT_EQ(1, app_activity_registry->NumberOfActivities()); 277 EXPECT_EQ(1, app_activity_registry->NumberOfActivities());
276 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity->GetCurrentState()); 278 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity->GetCurrentState());
277 279
278 // Calling Unload now should not do anything since at least one activity in 280 // Calling Unload now should not do anything since at least one activity in
279 // the registry is still visible. 281 // the registry is still visible.
280 app_activity_registry->Unload(); 282 app_activity_registry->Unload();
283 RunAllPendingInMessageLoop();
281 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); 284 EXPECT_EQ(0, test_extensions_delegate()->unload_called());
282 285
283 // After setting our activity to unloaded however the application should get 286 // After setting our activity to unloaded however the application should get
284 // unloaded as requested. 287 // unloaded as requested.
285 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); 288 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED);
286 app_activity_registry->Unload(); 289 app_activity_registry->Unload();
290 RunAllPendingInMessageLoop();
287 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); 291 EXPECT_EQ(1, test_extensions_delegate()->unload_called());
288 292
289 // Check that our created application is gone, and instead a proxy got 293 // Check that our created application is gone, and instead a proxy got
290 // created. 294 // created.
291 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 295 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications());
292 ASSERT_EQ(app_activity_registry, 296 ASSERT_EQ(app_activity_registry,
293 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); 297 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL));
294 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); 298 EXPECT_EQ(0, app_activity_registry->NumberOfActivities());
295 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); 299 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy();
296 ASSERT_TRUE(activity_proxy); 300 ASSERT_TRUE(activity_proxy);
(...skipping 21 matching lines...) Expand all
318 EXPECT_EQ(2, GetActivityPosition(app_activity2b)); 322 EXPECT_EQ(2, GetActivityPosition(app_activity2b));
319 EXPECT_EQ(1, GetActivityPosition(app_activity2a)); 323 EXPECT_EQ(1, GetActivityPosition(app_activity2a));
320 EXPECT_EQ(0, GetActivityPosition(app_activity1a)); 324 EXPECT_EQ(0, GetActivityPosition(app_activity1a));
321 325
322 // Unload an app and make sure that the proxy is in the newest activity slot. 326 // Unload an app and make sure that the proxy is in the newest activity slot.
323 AppActivityRegistry* app_activity_registry = 327 AppActivityRegistry* app_activity_registry =
324 app_activity2a->app_activity_registry(); 328 app_activity2a->app_activity_registry();
325 app_activity2a->SetCurrentState(Activity::ACTIVITY_UNLOADED); 329 app_activity2a->SetCurrentState(Activity::ACTIVITY_UNLOADED);
326 app_activity2b->SetCurrentState(Activity::ACTIVITY_UNLOADED); 330 app_activity2b->SetCurrentState(Activity::ACTIVITY_UNLOADED);
327 app_activity2a->app_activity_registry()->Unload(); 331 app_activity2a->app_activity_registry()->Unload();
332 RunAllPendingInMessageLoop();
328 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); 333 EXPECT_EQ(0, app_activity_registry->NumberOfActivities());
329 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); 334 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy();
330 RunAllPendingInMessageLoop(); 335 RunAllPendingInMessageLoop();
331 336
332 EXPECT_EQ(2, GetActivityPosition(app_activity1b)); 337 EXPECT_EQ(2, GetActivityPosition(app_activity1b));
333 EXPECT_EQ(1, GetActivityPosition(activity_proxy)); 338 EXPECT_EQ(1, GetActivityPosition(activity_proxy));
334 EXPECT_EQ(0, GetActivityPosition(app_activity1a)); 339 EXPECT_EQ(0, GetActivityPosition(app_activity1a));
335 EXPECT_EQ(0, test_extensions_delegate()->restart_called()); 340 EXPECT_EQ(0, test_extensions_delegate()->restart_called());
336 341
337 DeleteActivity(activity_proxy); 342 DeleteActivity(activity_proxy);
(...skipping 16 matching lines...) Expand all
354 app_activity1->app_activity_registry(); 359 app_activity1->app_activity_registry();
355 EXPECT_EQ(app_activity_registry, app_activity2->app_activity_registry()); 360 EXPECT_EQ(app_activity_registry, app_activity2->app_activity_registry());
356 EXPECT_EQ(app_activity_registry, app_activity3->app_activity_registry()); 361 EXPECT_EQ(app_activity_registry, app_activity3->app_activity_registry());
357 EXPECT_EQ(3, app_activity_registry->NumberOfActivities()); 362 EXPECT_EQ(3, app_activity_registry->NumberOfActivities());
358 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity1->GetCurrentState()); 363 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity1->GetCurrentState());
359 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity2->GetCurrentState()); 364 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity2->GetCurrentState());
360 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity3->GetCurrentState()); 365 EXPECT_EQ(Activity::ACTIVITY_VISIBLE, app_activity3->GetCurrentState());
361 366
362 // After setting all activities to UNLOADED the application should unload. 367 // After setting all activities to UNLOADED the application should unload.
363 app_activity1->SetCurrentState(Activity::ACTIVITY_UNLOADED); 368 app_activity1->SetCurrentState(Activity::ACTIVITY_UNLOADED);
364 app_activity1->app_activity_registry()->Unload(); 369 app_activity1->app_activity_registry()->Unload();
sadrul 2014/09/12 16:30:14 Looks like AppActivity::SetCurrentState() takes ca
Mr4D (OOO till 08-26) 2014/09/12 20:11:26 Done.
370 RunAllPendingInMessageLoop();
365 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); 371 EXPECT_EQ(0, test_extensions_delegate()->unload_called());
366 app_activity2->SetCurrentState(Activity::ACTIVITY_UNLOADED); 372 app_activity2->SetCurrentState(Activity::ACTIVITY_UNLOADED);
367 app_activity2->app_activity_registry()->Unload(); 373 app_activity2->app_activity_registry()->Unload();
374 RunAllPendingInMessageLoop();
368 EXPECT_EQ(0, test_extensions_delegate()->unload_called()); 375 EXPECT_EQ(0, test_extensions_delegate()->unload_called());
369 app_activity3->SetCurrentState(Activity::ACTIVITY_UNLOADED); 376 app_activity3->SetCurrentState(Activity::ACTIVITY_UNLOADED);
370 app_activity3->app_activity_registry()->Unload(); 377 app_activity3->app_activity_registry()->Unload();
378 RunAllPendingInMessageLoop();
371 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); 379 EXPECT_EQ(1, test_extensions_delegate()->unload_called());
372 380
373 // Now there should only be the proxy activity left. 381 // Now there should only be the proxy activity left.
374 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 382 ASSERT_EQ(1, AppRegistry::Get()->NumberOfApplications());
375 ASSERT_EQ(app_activity_registry, 383 ASSERT_EQ(app_activity_registry,
376 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); 384 AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL));
377 EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); 385 EXPECT_EQ(0, app_activity_registry->NumberOfActivities());
378 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); 386 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy();
379 ASSERT_TRUE(activity_proxy); 387 ASSERT_TRUE(activity_proxy);
380 EXPECT_NE(app_activity1, activity_proxy); 388 EXPECT_NE(app_activity1, activity_proxy);
(...skipping 18 matching lines...) Expand all
399 DisableResourceManager(); 407 DisableResourceManager();
400 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); 408 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications());
401 409
402 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); 410 TestAppActivity* app_activity = CreateAppActivity(kDummyApp1);
403 AppActivityRegistry* app_activity_registry = 411 AppActivityRegistry* app_activity_registry =
404 app_activity->app_activity_registry(); 412 app_activity->app_activity_registry();
405 413
406 // Unload the activity. 414 // Unload the activity.
407 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED); 415 app_activity->SetCurrentState(Activity::ACTIVITY_UNLOADED);
408 app_activity_registry->Unload(); 416 app_activity_registry->Unload();
417 RunAllPendingInMessageLoop();
409 EXPECT_EQ(1, test_extensions_delegate()->unload_called()); 418 EXPECT_EQ(1, test_extensions_delegate()->unload_called());
410 419
411 // Try to activate the activity again. This will force the application to 420 // Try to activate the activity again. This will force the application to
412 // reload. 421 // reload.
413 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); 422 Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy();
414 activity_proxy->SetCurrentState(Activity::ACTIVITY_VISIBLE); 423 activity_proxy->SetCurrentState(Activity::ACTIVITY_VISIBLE);
415 EXPECT_EQ(1, test_extensions_delegate()->restart_called()); 424 EXPECT_EQ(1, test_extensions_delegate()->restart_called());
416 425
417 // However - the restart in this test framework does not really restart and 426 // However - the restart in this test framework does not really restart and
418 // all objects should be still there.. 427 // all objects should be still there..
419 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); 428 EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications());
420 EXPECT_TRUE(app_activity_registry->unloaded_activity_proxy()); 429 EXPECT_TRUE(app_activity_registry->unloaded_activity_proxy());
421 Activity::Delete(app_activity_registry->unloaded_activity_proxy()); 430 Activity::Delete(app_activity_registry->unloaded_activity_proxy());
422 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); 431 EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications());
423 } 432 }
424 433
425 } // namespace test 434 } // namespace test
426 } // namespace athena 435 } // namespace athena
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698