Index: ash/launcher/launcher_view_unittest.cc |
diff --git a/ash/launcher/launcher_view_unittest.cc b/ash/launcher/launcher_view_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3a3d975176c10497f50df97e2e90705678fe1e9d |
--- /dev/null |
+++ b/ash/launcher/launcher_view_unittest.cc |
@@ -0,0 +1,83 @@ |
+// Copyright (c) 2012 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. |
sky
2012/04/13 17:32:15
I this doesn't work, don't bother checking it in.
|
+ |
+#include "ash/wm/panel_layout_manager.h" |
+ |
+#include "ash/ash_switches.h" |
+#include "ash/launcher/launcher.h" |
+#include "ash/launcher/launcher_icon_observer.h" |
+#include "ash/shell.h" |
+#include "ash/shell_window_ids.h" |
+#include "ash/test/ash_test_base.h" |
+#include "ash/test/test_launcher_delegate.h" |
+#include "base/basictypes.h" |
+#include "base/command_line.h" |
+#include "base/compiler_specific.h" |
+#include "ui/aura/window.h" |
+#include "ui/views/widget/widget.h" |
+#include "ui/views/widget/widget_delegate.h" |
+ |
+namespace ash { |
+ |
+namespace { |
+ |
+class LauncherViewTest : public ash::test::AshTestBase { |
sky
2012/04/13 17:32:15
If you don't need to override anything, use a type
|
+ public: |
+ LauncherViewTest() {} |
+ virtual ~LauncherViewTest() {} |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(LauncherViewTest); |
+}; |
+ |
+class TestLauncherIconObserver : public LauncherIconObserver { |
+ public: |
+ TestLauncherIconObserver() : count_(0) { |
+ Shell::GetInstance()->launcher()->AddIconObserver(this); |
+ } |
+ |
+ virtual ~TestLauncherIconObserver() { |
+ Shell::GetInstance()->launcher()->RemoveIconObserver(this); |
+ } |
+ |
+ void ExpectFiredAndReset() { |
+ EXPECT_EQ(1, count_); |
+ count_ = 0; |
+ } |
+ |
+ // LauncherIconObserver implementation. |
+ void OnLauncherIconPositionsChanged() OVERRIDE { |
+ count_++; |
+ } |
+ private: |
sky
2012/04/13 17:32:15
nit: newline between 52/53.
|
+ int count_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(TestLauncherIconObserver); |
+}; |
+ |
+TEST_F(LauncherViewTest, AddingWindows) { |
+ ash::test::TestLauncherDelegate* launcher_delegate = |
+ static_cast<ash::test::TestLauncherDelegate*>( |
+ Shell::GetInstance()->launcher()->delegate()); |
+ |
+ views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); |
+ params.bounds = gfx::Rect(0,0,200,200); |
sky
2012/04/13 17:32:15
nit: spaces after commas.
|
+ |
+ TestLauncherIconObserver observer; |
+ |
+ views::Widget* w1 = new views::Widget(); |
+ w1->Init(params); |
+ launcher_delegate->AddLauncherItem(w1->GetNativeWindow()); |
+ observer.ExpectFiredAndReset(); |
+ w1->Show(); |
+ |
+ // This test fails because removing child only fires events after |
+ // fading out deleted element. |
+ //w1->GetNativeWindow()->parent()->RemoveChild(w1->GetNativeWindow()); |
+ //observer.ExpectFiredAndReset(); |
+} |
+ |
+} |
+ |
+} // namespace ash |