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

Side by Side Diff: chrome/browser/ui/intents/web_intent_picker_model_unittest.cc

Issue 9148032: [Web Intents] Refactor picker to use WebIntentPickerModel. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: groby's fix Created 8 years, 10 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 | Annotate | Revision Log
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
5 #include "base/utf_string_conversions.h"
6 #include "chrome/browser/ui/intents/web_intent_picker_model.h"
7 #include "chrome/browser/ui/intents/web_intent_picker_model_observer.h"
8 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "ui/gfx/image/image.h"
11 #include "ui/gfx/image/image_unittest_util.h"
12
13 namespace {
14
15 const string16 kTitle1(ASCIIToUTF16("Foo"));
16 const string16 kTitle2(ASCIIToUTF16("Bar"));
17 const string16 kTitle3(ASCIIToUTF16("Baz"));
18 const GURL kUrl1("http://www.example.com/foo");
19 const GURL kUrl2("http://www.example.com/bar");
20 const GURL kUrl3("http://www.example.com/baz");
21
22 }
23
24 class WebIntentPickerModelObserverMock : public WebIntentPickerModelObserver {
25 public:
26 MOCK_METHOD1(OnModelChanged, void(WebIntentPickerModel* model));
27 MOCK_METHOD2(OnFaviconChanged,
28 void(WebIntentPickerModel* model, size_t index));
29 MOCK_METHOD1(OnInlineDisposition, void(WebIntentPickerModel* model));
30 };
31
32 class WebIntentPickerModelTest : public testing::Test {
33 public:
34 WebIntentPickerModelTest() {}
35
36 virtual void SetUp() {
37 testing::Test::SetUp();
38 model_.set_observer(&observer_);
39 }
40
41 WebIntentPickerModel model_;
42 WebIntentPickerModelObserverMock observer_;
43 };
44
45 TEST_F(WebIntentPickerModelTest, AddItem) {
46 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(2);
47
48 EXPECT_EQ(0U, model_.GetItemCount());
49
50 model_.AddItem(kTitle1, kUrl1, WebIntentPickerModel::DISPOSITION_WINDOW);
51 model_.AddItem(kTitle2, kUrl2, WebIntentPickerModel::DISPOSITION_WINDOW);
52
53 EXPECT_EQ(2U, model_.GetItemCount());
54 EXPECT_EQ(kUrl1, model_.GetItemAt(0).url);
55 EXPECT_EQ(kUrl2, model_.GetItemAt(1).url);
56 }
57
58 TEST_F(WebIntentPickerModelTest, RemoveItemAt) {
59 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(4);
60
61 model_.AddItem(kTitle1, kUrl1, WebIntentPickerModel::DISPOSITION_WINDOW);
62 model_.AddItem(kTitle2, kUrl2, WebIntentPickerModel::DISPOSITION_WINDOW);
63 model_.AddItem(kTitle3, kUrl3, WebIntentPickerModel::DISPOSITION_WINDOW);
64
65 EXPECT_EQ(3U, model_.GetItemCount());
66
67 model_.RemoveItemAt(1);
68
69 EXPECT_EQ(2U, model_.GetItemCount());
70 EXPECT_EQ(kUrl1, model_.GetItemAt(0).url);
71 EXPECT_EQ(kUrl3, model_.GetItemAt(1).url);
72 }
73
74 TEST_F(WebIntentPickerModelTest, Clear) {
75 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(3);
76
77 model_.AddItem(kTitle1, kUrl1, WebIntentPickerModel::DISPOSITION_WINDOW);
78 model_.AddItem(kTitle2, kUrl2, WebIntentPickerModel::DISPOSITION_WINDOW);
79
80 EXPECT_EQ(2U, model_.GetItemCount());
81
82 model_.Clear();
83
84 EXPECT_EQ(0U, model_.GetItemCount());
85 }
86
87 TEST_F(WebIntentPickerModelTest, UpdateFaviconAt) {
88 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(2);
89 EXPECT_CALL(observer_, OnFaviconChanged(&model_, 1U)).Times(1);
90
91 model_.AddItem(kTitle1, kUrl1, WebIntentPickerModel::DISPOSITION_WINDOW);
92 model_.AddItem(kTitle2, kUrl2, WebIntentPickerModel::DISPOSITION_WINDOW);
93 gfx::Image image(gfx::test::CreateImage());
94 model_.UpdateFaviconAt(1U, image);
95
96 EXPECT_FALSE(gfx::test::IsEqual(image, model_.GetItemAt(0).favicon));
97 EXPECT_TRUE(gfx::test::IsEqual(image, model_.GetItemAt(1).favicon));
98 }
99
100 TEST_F(WebIntentPickerModelTest, SetInlineDisposition) {
101 EXPECT_CALL(observer_, OnModelChanged(&model_)).Times(3);
102 EXPECT_CALL(observer_, OnInlineDisposition(&model_)).Times(1);
103
104 EXPECT_FALSE(model_.IsInlineDisposition());
105 EXPECT_EQ(std::string::npos, model_.inline_disposition_index());
106
107 model_.AddItem(kTitle1, kUrl1, WebIntentPickerModel::DISPOSITION_WINDOW);
108 model_.AddItem(kTitle2, kUrl2, WebIntentPickerModel::DISPOSITION_INLINE);
109 model_.SetInlineDisposition(1);
110
111 EXPECT_TRUE(model_.IsInlineDisposition());
112 EXPECT_EQ(1U, model_.inline_disposition_index());
113
114 model_.Clear();
115
116 EXPECT_FALSE(model_.IsInlineDisposition());
117 EXPECT_EQ(std::string::npos, model_.inline_disposition_index());
118 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/intents/web_intent_picker_model_observer.h ('k') | chrome/browser/ui/tab_contents/tab_contents_wrapper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698