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 3// found in the LICENSE file. 4 5#include "athena/activity/activity_manager_impl.h" 6 7#include "athena/activity/public/activity.h" 8#include "athena/activity/public/activity_factory.h" 9#include "athena/test/athena_test_base.h" 10#include "ui/aura/window.h" 11 12namespace athena { 13 14typedef test::AthenaTestBase ActivityManagerTest; 15 16TEST_F(ActivityManagerTest, Basic) { 17 ActivityManagerImpl* activity_manager = 18 static_cast<ActivityManagerImpl*>(ActivityManager::Get()); 19 ActivityFactory* factory = ActivityFactory::Get(); 20 21 Activity* activity1 = 22 factory->CreateWebActivity(NULL, base::string16(), GURL()); 23 EXPECT_EQ(1, activity_manager->num_activities()); 24 25 // Activity is not visible when created. 26 EXPECT_FALSE(activity1->GetWindow()->TargetVisibility()); 27 Activity::Show(activity1); 28 EXPECT_TRUE(activity1->GetWindow()->TargetVisibility()); 29 30 Activity* activity2 = 31 factory->CreateWebActivity(NULL, base::string16(), GURL()); 32 EXPECT_EQ(2, activity_manager->num_activities()); 33 34 Activity::Delete(activity1); 35 EXPECT_EQ(1, activity_manager->num_activities()); 36 37 // Deleting the activity's window should delete the activity itself. 38 delete activity2->GetWindow(); 39 EXPECT_EQ(0, activity_manager->num_activities()); 40} 41 42TEST_F(ActivityManagerTest, GetActivityForWindow) { 43 ActivityManager* manager = ActivityManager::Get(); 44 ActivityFactory* factory = ActivityFactory::Get(); 45 46 Activity* activity1 = 47 factory->CreateWebActivity(NULL, base::string16(), GURL()); 48 Activity* activity2 = 49 factory->CreateWebActivity(NULL, base::string16(), GURL()); 50 51 EXPECT_EQ(activity1, manager->GetActivityForWindow(activity1->GetWindow())); 52 EXPECT_EQ(activity2, manager->GetActivityForWindow(activity2->GetWindow())); 53 54 EXPECT_EQ(NULL, manager->GetActivityForWindow(NULL)); 55 56 scoped_ptr<aura::Window> window = CreateTestWindow(NULL, gfx::Rect()); 57 EXPECT_EQ(NULL, manager->GetActivityForWindow(window.get())); 58} 59 60} // namespace athena 61