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

Side by Side Diff: chrome/browser/extensions/api/tabs/tabs_api_unittest.cc

Issue 1871713002: Convert //chrome/browser/extensions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and fix header Created 4 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
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/strings/utf_string_conversions.h" 5 #include "base/strings/utf_string_conversions.h"
6 #include "chrome/browser/extensions/api/tabs/tabs_api.h" 6 #include "chrome/browser/extensions/api/tabs/tabs_api.h"
7 #include "chrome/browser/extensions/extension_function_test_utils.h" 7 #include "chrome/browser/extensions/extension_function_test_utils.h"
8 #include "chrome/browser/extensions/extension_service_test_base.h" 8 #include "chrome/browser/extensions/extension_service_test_base.h"
9 #include "chrome/browser/extensions/extension_tab_util.h" 9 #include "chrome/browser/extensions/extension_tab_util.h"
10 #include "chrome/browser/ui/browser.h" 10 #include "chrome/browser/ui/browser.h"
11 #include "chrome/browser/ui/tabs/tab_strip_model.h" 11 #include "chrome/browser/ui/tabs/tab_strip_model.h"
12 #include "chrome/test/base/test_browser_window.h" 12 #include "chrome/test/base/test_browser_window.h"
13 #include "content/public/browser/navigation_entry.h" 13 #include "content/public/browser/navigation_entry.h"
14 #include "content/public/test/test_web_contents_factory.h" 14 #include "content/public/test/test_web_contents_factory.h"
15 #include "content/public/test/web_contents_tester.h" 15 #include "content/public/test/web_contents_tester.h"
16 #include "extensions/common/extension_builder.h" 16 #include "extensions/common/extension_builder.h"
17 #include "extensions/common/test_util.h" 17 #include "extensions/common/test_util.h"
18 18
19 namespace extensions { 19 namespace extensions {
20 20
21 namespace { 21 namespace {
22 22
23 scoped_ptr<base::ListValue> RunTabsQueryFunction( 23 std::unique_ptr<base::ListValue> RunTabsQueryFunction(
24 Browser* browser, 24 Browser* browser,
25 const Extension* extension, 25 const Extension* extension,
26 const std::string& query_info) { 26 const std::string& query_info) {
27 scoped_refptr<TabsQueryFunction> function(new TabsQueryFunction()); 27 scoped_refptr<TabsQueryFunction> function(new TabsQueryFunction());
28 function->set_extension(extension); 28 function->set_extension(extension);
29 scoped_ptr<base::Value> value( 29 std::unique_ptr<base::Value> value(
30 extension_function_test_utils::RunFunctionAndReturnSingleResult( 30 extension_function_test_utils::RunFunctionAndReturnSingleResult(
31 function.get(), query_info, browser, 31 function.get(), query_info, browser,
32 extension_function_test_utils::NONE)); 32 extension_function_test_utils::NONE));
33 return base::ListValue::From(std::move(value)); 33 return base::ListValue::From(std::move(value));
34 } 34 }
35 35
36 } // namespace 36 } // namespace
37 37
38 class TabsApiUnitTest : public ExtensionServiceTestBase { 38 class TabsApiUnitTest : public ExtensionServiceTestBase {
39 protected: 39 protected:
40 TabsApiUnitTest() {} 40 TabsApiUnitTest() {}
41 ~TabsApiUnitTest() override {} 41 ~TabsApiUnitTest() override {}
42 42
43 Browser* browser() { return browser_.get(); } 43 Browser* browser() { return browser_.get(); }
44 44
45 private: 45 private:
46 // ExtensionServiceTestBase: 46 // ExtensionServiceTestBase:
47 void SetUp() override; 47 void SetUp() override;
48 void TearDown() override; 48 void TearDown() override;
49 49
50 // The browser (and accompanying window). 50 // The browser (and accompanying window).
51 scoped_ptr<TestBrowserWindow> browser_window_; 51 std::unique_ptr<TestBrowserWindow> browser_window_;
52 scoped_ptr<Browser> browser_; 52 std::unique_ptr<Browser> browser_;
53 53
54 DISALLOW_COPY_AND_ASSIGN(TabsApiUnitTest); 54 DISALLOW_COPY_AND_ASSIGN(TabsApiUnitTest);
55 }; 55 };
56 56
57 void TabsApiUnitTest::SetUp() { 57 void TabsApiUnitTest::SetUp() {
58 ExtensionServiceTestBase::SetUp(); 58 ExtensionServiceTestBase::SetUp();
59 InitializeEmptyExtensionService(); 59 InitializeEmptyExtensionService();
60 60
61 browser_window_.reset(new TestBrowserWindow()); 61 browser_window_.reset(new TestBrowserWindow());
62 Browser::CreateParams params(profile()); 62 Browser::CreateParams params(profile());
(...skipping 28 matching lines...) Expand all
91 web_contents_tester->NavigateAndCommit(tab_urls[i]); 91 web_contents_tester->NavigateAndCommit(tab_urls[i]);
92 web_contents->GetController().GetVisibleEntry()->SetTitle( 92 web_contents->GetController().GetVisibleEntry()->SetTitle(
93 base::ASCIIToUTF16(tab_titles[i])); 93 base::ASCIIToUTF16(tab_titles[i]));
94 } 94 }
95 95
96 const char* kTitleAndURLQueryInfo = 96 const char* kTitleAndURLQueryInfo =
97 "[{\"title\": \"Sample title\", \"url\": \"*://www.google.com/*\"}]"; 97 "[{\"title\": \"Sample title\", \"url\": \"*://www.google.com/*\"}]";
98 98
99 // An extension without "tabs" permission will see none of the 3 tabs. 99 // An extension without "tabs" permission will see none of the 3 tabs.
100 scoped_refptr<const Extension> extension = test_util::CreateEmptyExtension(); 100 scoped_refptr<const Extension> extension = test_util::CreateEmptyExtension();
101 scoped_ptr<base::ListValue> tabs_list_without_permission( 101 std::unique_ptr<base::ListValue> tabs_list_without_permission(
102 RunTabsQueryFunction(browser(), extension.get(), kTitleAndURLQueryInfo)); 102 RunTabsQueryFunction(browser(), extension.get(), kTitleAndURLQueryInfo));
103 ASSERT_TRUE(tabs_list_without_permission); 103 ASSERT_TRUE(tabs_list_without_permission);
104 EXPECT_EQ(0u, tabs_list_without_permission->GetSize()); 104 EXPECT_EQ(0u, tabs_list_without_permission->GetSize());
105 105
106 // An extension with "tabs" permission however will see the third tab. 106 // An extension with "tabs" permission however will see the third tab.
107 scoped_refptr<const Extension> extension_with_permission = 107 scoped_refptr<const Extension> extension_with_permission =
108 ExtensionBuilder() 108 ExtensionBuilder()
109 .SetManifest( 109 .SetManifest(
110 DictionaryBuilder() 110 DictionaryBuilder()
111 .Set("name", "Extension with tabs permission") 111 .Set("name", "Extension with tabs permission")
112 .Set("version", "1.0") 112 .Set("version", "1.0")
113 .Set("manifest_version", 2) 113 .Set("manifest_version", 2)
114 .Set("permissions", ListBuilder().Append("tabs").Build()) 114 .Set("permissions", ListBuilder().Append("tabs").Build())
115 .Build()) 115 .Build())
116 .Build(); 116 .Build();
117 scoped_ptr<base::ListValue> tabs_list_with_permission(RunTabsQueryFunction( 117 std::unique_ptr<base::ListValue> tabs_list_with_permission(
118 browser(), extension_with_permission.get(), kTitleAndURLQueryInfo)); 118 RunTabsQueryFunction(browser(), extension_with_permission.get(),
119 kTitleAndURLQueryInfo));
119 ASSERT_TRUE(tabs_list_with_permission); 120 ASSERT_TRUE(tabs_list_with_permission);
120 ASSERT_EQ(1u, tabs_list_with_permission->GetSize()); 121 ASSERT_EQ(1u, tabs_list_with_permission->GetSize());
121 122
122 const base::DictionaryValue* third_tab_info; 123 const base::DictionaryValue* third_tab_info;
123 ASSERT_TRUE(tabs_list_with_permission->GetDictionary(0, &third_tab_info)); 124 ASSERT_TRUE(tabs_list_with_permission->GetDictionary(0, &third_tab_info));
124 int third_tab_id = -1; 125 int third_tab_id = -1;
125 ASSERT_TRUE(third_tab_info->GetInteger("id", &third_tab_id)); 126 ASSERT_TRUE(third_tab_info->GetInteger("id", &third_tab_id));
126 EXPECT_EQ(ExtensionTabUtil::GetTabId(web_contentses[2]), third_tab_id); 127 EXPECT_EQ(ExtensionTabUtil::GetTabId(web_contentses[2]), third_tab_id);
127 } 128 }
128 129
(...skipping 29 matching lines...) Expand all
158 DictionaryBuilder() 159 DictionaryBuilder()
159 .Set("name", "Extension with tabs permission") 160 .Set("name", "Extension with tabs permission")
160 .Set("version", "1.0") 161 .Set("version", "1.0")
161 .Set("manifest_version", 2) 162 .Set("manifest_version", 2)
162 .Set("permissions", 163 .Set("permissions",
163 ListBuilder().Append("*://www.google.com/*").Build()) 164 ListBuilder().Append("*://www.google.com/*").Build())
164 .Build()) 165 .Build())
165 .Build(); 166 .Build();
166 167
167 { 168 {
168 scoped_ptr<base::ListValue> tabs_list_with_permission(RunTabsQueryFunction( 169 std::unique_ptr<base::ListValue> tabs_list_with_permission(
169 browser(), extension_with_permission.get(), kTitleAndURLQueryInfo)); 170 RunTabsQueryFunction(browser(), extension_with_permission.get(),
171 kTitleAndURLQueryInfo));
170 ASSERT_TRUE(tabs_list_with_permission); 172 ASSERT_TRUE(tabs_list_with_permission);
171 ASSERT_EQ(1u, tabs_list_with_permission->GetSize()); 173 ASSERT_EQ(1u, tabs_list_with_permission->GetSize());
172 174
173 const base::DictionaryValue* third_tab_info; 175 const base::DictionaryValue* third_tab_info;
174 ASSERT_TRUE(tabs_list_with_permission->GetDictionary(0, &third_tab_info)); 176 ASSERT_TRUE(tabs_list_with_permission->GetDictionary(0, &third_tab_info));
175 int third_tab_id = -1; 177 int third_tab_id = -1;
176 ASSERT_TRUE(third_tab_info->GetInteger("id", &third_tab_id)); 178 ASSERT_TRUE(third_tab_info->GetInteger("id", &third_tab_id));
177 EXPECT_EQ(ExtensionTabUtil::GetTabId(web_contentses[2]), third_tab_id); 179 EXPECT_EQ(ExtensionTabUtil::GetTabId(web_contentses[2]), third_tab_id);
178 } 180 }
179 181
180 // Try the same without title, first and third tabs will match. 182 // Try the same without title, first and third tabs will match.
181 const char* kURLQueryInfo = "[{\"url\": \"*://www.google.com/*\"}]"; 183 const char* kURLQueryInfo = "[{\"url\": \"*://www.google.com/*\"}]";
182 { 184 {
183 scoped_ptr<base::ListValue> tabs_list_with_permission(RunTabsQueryFunction( 185 std::unique_ptr<base::ListValue> tabs_list_with_permission(
184 browser(), extension_with_permission.get(), kURLQueryInfo)); 186 RunTabsQueryFunction(browser(), extension_with_permission.get(),
187 kURLQueryInfo));
185 ASSERT_TRUE(tabs_list_with_permission); 188 ASSERT_TRUE(tabs_list_with_permission);
186 ASSERT_EQ(2u, tabs_list_with_permission->GetSize()); 189 ASSERT_EQ(2u, tabs_list_with_permission->GetSize());
187 190
188 const base::DictionaryValue* first_tab_info; 191 const base::DictionaryValue* first_tab_info;
189 const base::DictionaryValue* third_tab_info; 192 const base::DictionaryValue* third_tab_info;
190 ASSERT_TRUE(tabs_list_with_permission->GetDictionary(0, &first_tab_info)); 193 ASSERT_TRUE(tabs_list_with_permission->GetDictionary(0, &first_tab_info));
191 ASSERT_TRUE(tabs_list_with_permission->GetDictionary(1, &third_tab_info)); 194 ASSERT_TRUE(tabs_list_with_permission->GetDictionary(1, &third_tab_info));
192 195
193 std::vector<int> expected_tabs_ids; 196 std::vector<int> expected_tabs_ids;
194 expected_tabs_ids.push_back(ExtensionTabUtil::GetTabId(web_contentses[0])); 197 expected_tabs_ids.push_back(ExtensionTabUtil::GetTabId(web_contentses[0]));
195 expected_tabs_ids.push_back(ExtensionTabUtil::GetTabId(web_contentses[2])); 198 expected_tabs_ids.push_back(ExtensionTabUtil::GetTabId(web_contentses[2]));
196 199
197 int first_tab_id = -1; 200 int first_tab_id = -1;
198 ASSERT_TRUE(first_tab_info->GetInteger("id", &first_tab_id)); 201 ASSERT_TRUE(first_tab_info->GetInteger("id", &first_tab_id));
199 EXPECT_TRUE(ContainsValue(expected_tabs_ids, first_tab_id)); 202 EXPECT_TRUE(ContainsValue(expected_tabs_ids, first_tab_id));
200 203
201 int third_tab_id = -1; 204 int third_tab_id = -1;
202 ASSERT_TRUE(third_tab_info->GetInteger("id", &third_tab_id)); 205 ASSERT_TRUE(third_tab_info->GetInteger("id", &third_tab_id));
203 EXPECT_TRUE(ContainsValue(expected_tabs_ids, third_tab_id)); 206 EXPECT_TRUE(ContainsValue(expected_tabs_ids, third_tab_id));
204 } 207 }
205 } 208 }
206 209
207 } // namespace extensions 210 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/tabs/tabs_api.cc ('k') | chrome/browser/extensions/api/tabs/tabs_event_router.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698