Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / athena / activity / activity_manager_unittest.cc
index 6592ee8..206136b 100644 (file)
@@ -6,20 +6,72 @@
 
 #include "athena/activity/public/activity.h"
 #include "athena/activity/public/activity_factory.h"
-#include "athena/test/athena_test_base.h"
+#include "athena/activity/public/activity_view_model.h"
+#include "athena/test/base/athena_test_base.h"
+#include "athena/test/base/test_windows.h"
 #include "ui/aura/window.h"
+#include "ui/gfx/image/image_skia.h"
+#include "ui/views/widget/widget.h"
+#include "ui/wm/core/window_util.h"
 
 namespace athena {
 
 typedef test::AthenaTestBase ActivityManagerTest;
 
+class WidgetActivity : public Activity,
+                       public ActivityViewModel {
+ public:
+  WidgetActivity() : initialized_(false) {
+    widget_.reset(new views::Widget());
+    views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
+    params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
+    widget_->Init(params);
+  }
+
+  bool initialized() const { return initialized_; }
+
+ private:
+  ~WidgetActivity() override {}
+
+  // athena::Activity:
+  athena::ActivityViewModel* GetActivityViewModel() override { return this; }
+  void SetCurrentState(Activity::ActivityState state) override {}
+  ActivityState GetCurrentState() override { return ACTIVITY_VISIBLE; }
+  bool IsVisible() override { return true; }
+  ActivityMediaState GetMediaState() override {
+    return ACTIVITY_MEDIA_STATE_NONE;
+  }
+  aura::Window* GetWindow() override { return widget_->GetNativeView(); }
+  content::WebContents* GetWebContents() override { return nullptr; }
+
+  // athena::ActivityViewModel:
+  void Init() override {
+    initialized_ = true;
+  }
+
+  SkColor GetRepresentativeColor() const override { return SK_ColorBLACK; }
+  base::string16 GetTitle() const override { return base::string16(); }
+  gfx::ImageSkia GetIcon() const override { return gfx::ImageSkia(); }
+  void SetActivityView(ActivityView* activity_view) override {}
+  bool UsesFrame() const override { return false; }
+  views::View* GetContentsView() override { return nullptr; }
+  gfx::ImageSkia GetOverviewModeImage() override { return gfx::ImageSkia(); }
+  void PrepareContentsForOverview() override {}
+  void ResetContentsView() override {}
+
+  scoped_ptr<views::Widget> widget_;
+  bool initialized_;
+
+  DISALLOW_COPY_AND_ASSIGN(WidgetActivity);
+};
+
 TEST_F(ActivityManagerTest, Basic) {
   ActivityManagerImpl* activity_manager =
       static_cast<ActivityManagerImpl*>(ActivityManager::Get());
   ActivityFactory* factory = ActivityFactory::Get();
 
   Activity* activity1 =
-      factory->CreateWebActivity(NULL, base::string16(), GURL());
+      factory->CreateWebActivity(nullptr, base::string16(), GURL());
   EXPECT_EQ(1, activity_manager->num_activities());
 
   // Activity is not visible when created.
@@ -28,7 +80,7 @@ TEST_F(ActivityManagerTest, Basic) {
   EXPECT_TRUE(activity1->GetWindow()->TargetVisibility());
 
   Activity* activity2 =
-      factory->CreateWebActivity(NULL, base::string16(), GURL());
+      factory->CreateWebActivity(nullptr, base::string16(), GURL());
   EXPECT_EQ(2, activity_manager->num_activities());
 
   Activity::Delete(activity1);
@@ -44,17 +96,46 @@ TEST_F(ActivityManagerTest, GetActivityForWindow) {
   ActivityFactory* factory = ActivityFactory::Get();
 
   Activity* activity1 =
-      factory->CreateWebActivity(NULL, base::string16(), GURL());
+      factory->CreateWebActivity(nullptr, base::string16(), GURL());
   Activity* activity2 =
-      factory->CreateWebActivity(NULL, base::string16(), GURL());
+      factory->CreateWebActivity(nullptr, base::string16(), GURL());
 
   EXPECT_EQ(activity1, manager->GetActivityForWindow(activity1->GetWindow()));
   EXPECT_EQ(activity2, manager->GetActivityForWindow(activity2->GetWindow()));
 
-  EXPECT_EQ(NULL, manager->GetActivityForWindow(NULL));
+  EXPECT_EQ(nullptr, manager->GetActivityForWindow(nullptr));
+
+  scoped_ptr<aura::Window> window = test::CreateNormalWindow(nullptr, nullptr);
+  EXPECT_EQ(nullptr, manager->GetActivityForWindow(window.get()));
+}
+
+TEST_F(ActivityManagerTest, ActivationBringsActivityToTop) {
+  ActivityManager* manager = ActivityManager::Get();
+  ActivityFactory* factory = ActivityFactory::Get();
 
-  scoped_ptr<aura::Window> window = CreateTestWindow(NULL, gfx::Rect());
-  EXPECT_EQ(NULL, manager->GetActivityForWindow(window.get()));
+  Activity* activity1 =
+      factory->CreateWebActivity(nullptr, base::string16(), GURL());
+  Activity* activity2 =
+      factory->CreateWebActivity(nullptr, base::string16(), GURL());
+  activity1->GetWindow()->Show();
+  activity2->GetWindow()->Show();
+
+  ASSERT_EQ(2u, manager->GetActivityList().size());
+  EXPECT_EQ(activity2, manager->GetActivityList()[0]);
+  EXPECT_EQ(activity1, manager->GetActivityList()[1]);
+
+  wm::ActivateWindow(activity1->GetWindow());
+  ASSERT_EQ(2u, manager->GetActivityList().size());
+  EXPECT_EQ(activity1, manager->GetActivityList()[0]);
+  EXPECT_EQ(activity2, manager->GetActivityList()[1]);
+}
+
+TEST_F(ActivityManagerTest, WidgetActivityModelIsInitialized) {
+  ActivityManager* manager = ActivityManager::Get();
+  WidgetActivity* activity = new WidgetActivity();
+  manager->AddActivity(activity);
+  EXPECT_TRUE(activity->initialized());
+  Activity::Delete(activity);
 }
 
 }  // namespace athena