Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(282)

Side by Side Diff: ash/launcher/launcher_view_unittest.cc

Issue 10116011: Add LauncherIconObserver. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: . Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2012 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
sky 2012/04/19 00:05:40 tests should follow that of non-test cc files and
dcheng 2012/04/19 20:18:15 Done.
5 #include "ash/ash_switches.h"
6 #include "ash/launcher/launcher.h"
7 #include "ash/launcher/launcher_icon_observer.h"
8 #include "ash/shell.h"
9 #include "ash/shell_window_ids.h"
10 #include "ash/test/ash_test_base.h"
11 #include "ash/test/test_launcher_delegate.h"
12 #include "base/basictypes.h"
13 #include "base/command_line.h"
14 #include "base/compiler_specific.h"
15 #include "ui/aura/window.h"
16 #include "ui/views/widget/widget.h"
17 #include "ui/views/widget/widget_delegate.h"
18
19 namespace ash {
20
21 namespace {
22
23 class TestLauncherIconObserver : public LauncherIconObserver {
24 public:
25 TestLauncherIconObserver() : count_(0) {
26 Shell::GetInstance()->launcher()->AddIconObserver(this);
27 }
28
29 virtual ~TestLauncherIconObserver() {
30 Shell::GetInstance()->launcher()->RemoveIconObserver(this);
31 }
32
33 // LauncherIconObserver implementation.
34 void OnLauncherIconPositionsChanged() OVERRIDE {
35 count_++;
36 }
37
38 int count() const { return count_; }
39 void Reset() { count_ = 0; }
40
41 private:
42 int count_;
43
44 DISALLOW_COPY_AND_ASSIGN(TestLauncherIconObserver);
45 };
46
47 class LauncherViewTest : public ash::test::AshTestBase {
48 public:
49 LauncherViewTest() {}
50 virtual ~LauncherViewTest() {}
51
52 virtual void SetUp() OVERRIDE {
53 AshTestBase::SetUp();
54 observer_.reset(new TestLauncherIconObserver);
55 }
56
57 virtual void TearDown() OVERRIDE {
58 observer_.reset();
59 AshTestBase::TearDown();
60 }
61
62 TestLauncherIconObserver* observer() { return observer_.get(); }
63
64 private:
65 scoped_ptr<TestLauncherIconObserver> observer_;
66
67 DISALLOW_COPY_AND_ASSIGN(LauncherViewTest);
68 };
69
70 TEST_F(LauncherViewTest, AddRemove) {
71 ash::test::TestLauncherDelegate* launcher_delegate =
sky 2012/04/19 00:05:40 Instead of this, how about a static instance metho
dcheng 2012/04/19 20:18:15 Done. Unfortunately ASSERT_NE(NULL, launcher_deleg
72 static_cast<ash::test::TestLauncherDelegate*>(
73 Shell::GetInstance()->launcher()->delegate());
74
75 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
76 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
77 params.bounds = gfx::Rect(0, 0, 200, 200);
78
79 scoped_ptr<views::Widget> widget(new views::Widget());
80 widget->Init(params);
81 launcher_delegate->AddLauncherItem(widget->GetNativeWindow());
82 EXPECT_EQ(1, observer()->count());
83 observer()->Reset();
84
85 widget->Show();
86 widget->GetNativeWindow()->parent()->RemoveChild(widget->GetNativeWindow());
87 EXPECT_EQ(1, observer()->count());
88 observer()->Reset();
89 }
90
91 TEST_F(LauncherViewTest, BoundsChanged) {
92 Launcher* launcher = Shell::GetInstance()->launcher();
93 int total_width = launcher->widget()->GetWindowScreenBounds().width();
94 ASSERT_GT(total_width, 0);
95 launcher->SetStatusWidth(total_width / 2);
96 EXPECT_EQ(1, observer()->count());
97 observer()->Reset();
98 }
99
100 } // namespace
101
102 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698