Index: athena/content/app_activity_unittest.cc |
diff --git a/athena/content/app_activity_unittest.cc b/athena/content/app_activity_unittest.cc |
index 44efd34a34e84303045d5a80d3d1492d12d4b303..6c287950fc5c19ce4d2cea3f2a6c23ada026ad52 100644 |
--- a/athena/content/app_activity_unittest.cc |
+++ b/athena/content/app_activity_unittest.cc |
@@ -8,6 +8,7 @@ |
#include "athena/content/app_activity_registry.h" |
#include "athena/content/public/app_registry.h" |
#include "athena/extensions/public/extensions_delegate.h" |
+#include "athena/resource_manager/public/resource_manager.h" |
#include "athena/test/athena_test_base.h" |
#include "extensions/common/extension_set.h" |
#include "ui/aura/window.h" |
@@ -154,8 +155,8 @@ class AppActivityTest : public AthenaTestBase { |
return activity; |
} |
- void CloseActivity(Activity* activity) { |
- delete activity; |
+ void DeleteActivity(Activity* activity) { |
+ Activity::Delete(activity); |
RunAllPendingInMessageLoop(); |
} |
@@ -171,6 +172,13 @@ class AppActivityTest : public AthenaTestBase { |
return -1; |
} |
+ // To avoid interference of the ResourceManager in these AppActivity |
+ // framework tests, we disable the ResourceManager for some tests. |
+ // Every use/interference of this function gets explained. |
+ void DisableResourceManager() { |
+ ResourceManager::Get()->Pause(true); |
+ } |
+ |
protected: |
TestExtensionsDelegate* test_extensions_delegate() { |
return test_extensions_delegate_; |
@@ -191,7 +199,7 @@ TEST_F(AppActivityTest, OneAppActivity) { |
EXPECT_EQ(1, app_activity->app_activity_registry()->NumberOfActivities()); |
EXPECT_EQ(AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL), |
app_activity->app_activity_registry()); |
- CloseActivity(app_activity); |
+ DeleteActivity(app_activity); |
} |
EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
EXPECT_EQ(0, test_extensions_delegate()->unload_called()); |
@@ -209,8 +217,8 @@ TEST_F(AppActivityTest, TwoAppsWithOneActivityEach) { |
EXPECT_EQ(2, AppRegistry::Get()->NumberOfApplications()); |
EXPECT_EQ(1, app_activity2->app_activity_registry()->NumberOfActivities()); |
EXPECT_EQ(1, app_activity1->app_activity_registry()->NumberOfActivities()); |
- CloseActivity(app_activity1); |
- CloseActivity(app_activity2); |
+ DeleteActivity(app_activity1); |
+ DeleteActivity(app_activity2); |
} |
EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
EXPECT_EQ(0, test_extensions_delegate()->unload_called()); |
@@ -227,10 +235,10 @@ TEST_F(AppActivityTest, TwoAppActivities) { |
EXPECT_EQ(2, app_activity1->app_activity_registry()->NumberOfActivities()); |
EXPECT_EQ(app_activity1->app_activity_registry(), |
app_activity2->app_activity_registry()); |
- CloseActivity(app_activity1); |
+ DeleteActivity(app_activity1); |
EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); |
EXPECT_EQ(1, app_activity2->app_activity_registry()->NumberOfActivities()); |
- CloseActivity(app_activity2); |
+ DeleteActivity(app_activity2); |
} |
EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
{ |
@@ -240,10 +248,10 @@ TEST_F(AppActivityTest, TwoAppActivities) { |
EXPECT_EQ(2, app_activity1->app_activity_registry()->NumberOfActivities()); |
EXPECT_EQ(app_activity1->app_activity_registry(), |
app_activity2->app_activity_registry()); |
- CloseActivity(app_activity2); |
+ DeleteActivity(app_activity2); |
EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); |
EXPECT_EQ(1, app_activity1->app_activity_registry()->NumberOfActivities()); |
- CloseActivity(app_activity1); |
+ DeleteActivity(app_activity1); |
} |
EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
EXPECT_EQ(0, test_extensions_delegate()->unload_called()); |
@@ -252,6 +260,11 @@ TEST_F(AppActivityTest, TwoAppActivities) { |
// Test unload and the creation of the proxy, then "closing the activity". |
TEST_F(AppActivityTest, TestUnloadFollowedByClose) { |
+ // We do not want the ResourceManager to interfere with this test. In this |
+ // case it would (dependent on its current internal implementation) |
+ // automatically re-load the unloaded activity if it is in an "active" |
+ // position. |
+ DisableResourceManager(); |
EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); |
@@ -278,14 +291,14 @@ TEST_F(AppActivityTest, TestUnloadFollowedByClose) { |
ASSERT_EQ(app_activity_registry, |
AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); |
EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); |
- Activity* activity_proxy = |
- app_activity_registry->unloaded_activity_proxy_for_test(); |
+ Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); |
ASSERT_TRUE(activity_proxy); |
EXPECT_NE(app_activity, activity_proxy); |
EXPECT_EQ(Activity::ACTIVITY_UNLOADED, activity_proxy->GetCurrentState()); |
+ EXPECT_EQ(0, test_extensions_delegate()->restart_called()); |
// Close the proxy object and make sure that nothing bad happens. |
- CloseActivity(activity_proxy); |
+ DeleteActivity(activity_proxy); |
EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
EXPECT_EQ(1, test_extensions_delegate()->unload_called()); |
@@ -312,17 +325,17 @@ TEST_F(AppActivityTest, TestUnloadProxyLocation) { |
app_activity2b->SetCurrentState(Activity::ACTIVITY_UNLOADED); |
app_activity2a->app_activity_registry()->Unload(); |
EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); |
- Activity* activity_proxy = |
- app_activity_registry->unloaded_activity_proxy_for_test(); |
+ Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); |
RunAllPendingInMessageLoop(); |
EXPECT_EQ(2, GetActivityPosition(app_activity1b)); |
EXPECT_EQ(1, GetActivityPosition(activity_proxy)); |
EXPECT_EQ(0, GetActivityPosition(app_activity1a)); |
+ EXPECT_EQ(0, test_extensions_delegate()->restart_called()); |
- CloseActivity(activity_proxy); |
- CloseActivity(app_activity1b); |
- CloseActivity(app_activity1a); |
+ DeleteActivity(activity_proxy); |
+ DeleteActivity(app_activity1b); |
+ DeleteActivity(app_activity1a); |
} |
// Test that an unload with multiple activities of the same app will only unload |
@@ -361,8 +374,7 @@ TEST_F(AppActivityTest, TestMultipleActivityUnloadLock) { |
ASSERT_EQ(app_activity_registry, |
AppRegistry::Get()->GetAppActivityRegistry(kDummyApp1, NULL)); |
EXPECT_EQ(0, app_activity_registry->NumberOfActivities()); |
- Activity* activity_proxy = |
- app_activity_registry->unloaded_activity_proxy_for_test(); |
+ Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); |
ASSERT_TRUE(activity_proxy); |
EXPECT_NE(app_activity1, activity_proxy); |
EXPECT_NE(app_activity2, activity_proxy); |
@@ -370,7 +382,7 @@ TEST_F(AppActivityTest, TestMultipleActivityUnloadLock) { |
EXPECT_EQ(Activity::ACTIVITY_UNLOADED, activity_proxy->GetCurrentState()); |
// Close the proxy object and make sure that nothing bad happens. |
- CloseActivity(activity_proxy); |
+ DeleteActivity(activity_proxy); |
EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
EXPECT_EQ(1, test_extensions_delegate()->unload_called()); |
@@ -379,6 +391,11 @@ TEST_F(AppActivityTest, TestMultipleActivityUnloadLock) { |
// Test that activating the proxy will reload the application. |
TEST_F(AppActivityTest, TestUnloadWithReload) { |
+ // We do not want the ResourceManager to interfere with this test. In this |
+ // case it would (dependent on its current internal implementation) |
+ // automatically re-load the unloaded activity if it is in an "active" |
+ // position. |
+ DisableResourceManager(); |
EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
TestAppActivity* app_activity = CreateAppActivity(kDummyApp1); |
@@ -392,13 +409,15 @@ TEST_F(AppActivityTest, TestUnloadWithReload) { |
// Try to activate the activity again. This will force the application to |
// reload. |
- Activity* activity_proxy = |
- app_activity_registry->unloaded_activity_proxy_for_test(); |
+ Activity* activity_proxy = app_activity_registry->unloaded_activity_proxy(); |
activity_proxy->SetCurrentState(Activity::ACTIVITY_VISIBLE); |
EXPECT_EQ(1, test_extensions_delegate()->restart_called()); |
// However - the restart in this test framework does not really restart and |
- // all objects should be gone now. |
+ // all objects should be still there.. |
+ EXPECT_EQ(1, AppRegistry::Get()->NumberOfApplications()); |
+ EXPECT_TRUE(app_activity_registry->unloaded_activity_proxy()); |
+ Activity::Delete(app_activity_registry->unloaded_activity_proxy()); |
EXPECT_EQ(0, AppRegistry::Get()->NumberOfApplications()); |
} |