/// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "athena/activity/activity_manager_impl.h" #include "athena/activity/public/activity.h" #include "athena/activity/public/activity_factory.h" #include "athena/test/base/athena_test_base.h" #include "ui/aura/window.h" namespace athena { typedef test::AthenaTestBase ActivityManagerTest; TEST_F(ActivityManagerTest, Basic) { ActivityManagerImpl* activity_manager = static_cast<ActivityManagerImpl*>(ActivityManager::Get()); ActivityFactory* factory = ActivityFactory::Get(); Activity* activity1 = factory->CreateWebActivity(NULL, base::string16(), GURL()); EXPECT_EQ(1, activity_manager->num_activities()); // Activity is not visible when created. EXPECT_FALSE(activity1->GetWindow()->TargetVisibility()); Activity::Show(activity1); EXPECT_TRUE(activity1->GetWindow()->TargetVisibility()); Activity* activity2 = factory->CreateWebActivity(NULL, base::string16(), GURL()); EXPECT_EQ(2, activity_manager->num_activities()); Activity::Delete(activity1); EXPECT_EQ(1, activity_manager->num_activities()); // Deleting the activity's window should delete the activity itself. delete activity2->GetWindow(); EXPECT_EQ(0, activity_manager->num_activities()); } TEST_F(ActivityManagerTest, GetActivityForWindow) { ActivityManager* manager = ActivityManager::Get(); ActivityFactory* factory = ActivityFactory::Get(); Activity* activity1 = factory->CreateWebActivity(NULL, base::string16(), GURL()); Activity* activity2 = factory->CreateWebActivity(NULL, base::string16(), GURL()); EXPECT_EQ(activity1, manager->GetActivityForWindow(activity1->GetWindow())); EXPECT_EQ(activity2, manager->GetActivityForWindow(activity2->GetWindow())); EXPECT_EQ(NULL, manager->GetActivityForWindow(NULL)); scoped_ptr<aura::Window> window = CreateTestWindow(NULL, gfx::Rect()); EXPECT_EQ(NULL, manager->GetActivityForWindow(window.get())); } } // namespace athena