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

Side by Side Diff: chrome/browser/extensions/webstore_installer_browsertest.cc

Issue 1549233002: Convert Pass()→std::move() in //chrome/browser/extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 12 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "chrome/browser/extensions/webstore_installer.h" 5 #include "chrome/browser/extensions/webstore_installer.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 23 matching lines...) Expand all
34 34
35 // Test version of WebstoreInstaller that intercepts the destructor. 35 // Test version of WebstoreInstaller that intercepts the destructor.
36 class TestWebstoreInstaller : public WebstoreInstaller { 36 class TestWebstoreInstaller : public WebstoreInstaller {
37 public: 37 public:
38 TestWebstoreInstaller(Profile* profile, 38 TestWebstoreInstaller(Profile* profile,
39 Delegate* delegate, 39 Delegate* delegate,
40 content::WebContents* web_contents, 40 content::WebContents* web_contents,
41 const std::string& id, 41 const std::string& id,
42 scoped_ptr<Approval> approval, 42 scoped_ptr<Approval> approval,
43 InstallSource source) 43 InstallSource source)
44 : WebstoreInstaller( 44 : WebstoreInstaller(profile,
45 profile, delegate, web_contents, id, approval.Pass(), source) {} 45 delegate,
46 web_contents,
47 id,
48 std::move(approval),
49 source) {}
46 50
47 void SetDeletedClosure(const base::Closure& cb) { deleted_closure_ = cb; } 51 void SetDeletedClosure(const base::Closure& cb) { deleted_closure_ = cb; }
48 52
49 private: 53 private:
50 ~TestWebstoreInstaller() override { 54 ~TestWebstoreInstaller() override {
51 if (!deleted_closure_.is_null()) 55 if (!deleted_closure_.is_null())
52 deleted_closure_.Run(); 56 deleted_closure_.Run();
53 } 57 }
54 58
55 base::Closure deleted_closure_; 59 base::Closure deleted_closure_;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 .Set("permissions", std::move(ListBuilder().Append("tabs"))) 126 .Set("permissions", std::move(ListBuilder().Append("tabs")))
123 .Build()); 127 .Build());
124 128
125 content::WebContents* active_web_contents = 129 content::WebContents* active_web_contents =
126 browser()->tab_strip_model()->GetActiveWebContents(); 130 browser()->tab_strip_model()->GetActiveWebContents();
127 ASSERT_TRUE(active_web_contents); 131 ASSERT_TRUE(active_web_contents);
128 132
129 // Create an approval. 133 // Create an approval.
130 scoped_ptr<WebstoreInstaller::Approval> approval = 134 scoped_ptr<WebstoreInstaller::Approval> approval =
131 WebstoreInstaller::Approval::CreateWithNoInstallPrompt( 135 WebstoreInstaller::Approval::CreateWithNoInstallPrompt(
132 browser()->profile(), 136 browser()->profile(), kTestExtensionId, std::move(manifest), false);
133 kTestExtensionId,
134 manifest.Pass(),
135 false);
136 137
137 // Create and run a WebstoreInstaller. 138 // Create and run a WebstoreInstaller.
138 base::RunLoop run_loop; 139 base::RunLoop run_loop;
139 SetDoneClosure(run_loop.QuitClosure()); 140 SetDoneClosure(run_loop.QuitClosure());
140 TestWebstoreInstaller* installer = 141 TestWebstoreInstaller* installer = new TestWebstoreInstaller(
141 new TestWebstoreInstaller( 142 browser()->profile(), this, active_web_contents, kTestExtensionId,
142 browser()->profile(), 143 std::move(approval), WebstoreInstaller::INSTALL_SOURCE_OTHER);
143 this,
144 active_web_contents,
145 kTestExtensionId,
146 approval.Pass(),
147 WebstoreInstaller::INSTALL_SOURCE_OTHER);
148 installer->Start(); 144 installer->Start();
149 run_loop.Run(); 145 run_loop.Run();
150 146
151 EXPECT_TRUE(success()); 147 EXPECT_TRUE(success());
152 ExtensionRegistry* registry = ExtensionRegistry::Get(profile()); 148 ExtensionRegistry* registry = ExtensionRegistry::Get(profile());
153 ASSERT_TRUE(registry->enabled_extensions().GetByID(kTestExtensionId)); 149 ASSERT_TRUE(registry->enabled_extensions().GetByID(kTestExtensionId));
154 } 150 }
155 151
156 IN_PROC_BROWSER_TEST_F(WebstoreInstallerBrowserTest, SimultaneousInstall) { 152 IN_PROC_BROWSER_TEST_F(WebstoreInstallerBrowserTest, SimultaneousInstall) {
157 scoped_ptr<base::DictionaryValue> manifest( 153 scoped_ptr<base::DictionaryValue> manifest(
(...skipping 13 matching lines...) Expand all
171 scoped_ptr<WebstoreInstaller::Approval> approval = 167 scoped_ptr<WebstoreInstaller::Approval> approval =
172 WebstoreInstaller::Approval::CreateWithNoInstallPrompt( 168 WebstoreInstaller::Approval::CreateWithNoInstallPrompt(
173 browser()->profile(), 169 browser()->profile(),
174 kTestExtensionId, 170 kTestExtensionId,
175 scoped_ptr<base::DictionaryValue>(manifest->DeepCopy()), 171 scoped_ptr<base::DictionaryValue>(manifest->DeepCopy()),
176 false); 172 false);
177 173
178 // Create and run a WebstoreInstaller. 174 // Create and run a WebstoreInstaller.
179 base::RunLoop run_loop; 175 base::RunLoop run_loop;
180 SetDoneClosure(run_loop.QuitClosure()); 176 SetDoneClosure(run_loop.QuitClosure());
181 scoped_refptr<TestWebstoreInstaller> installer = 177 scoped_refptr<TestWebstoreInstaller> installer = new TestWebstoreInstaller(
182 new TestWebstoreInstaller( 178 browser()->profile(), this, active_web_contents, kTestExtensionId,
183 browser()->profile(), 179 std::move(approval), WebstoreInstaller::INSTALL_SOURCE_OTHER);
184 this,
185 active_web_contents,
186 kTestExtensionId,
187 approval.Pass(),
188 WebstoreInstaller::INSTALL_SOURCE_OTHER);
189 installer->Start(); 180 installer->Start();
190 181
191 // Simulate another mechanism installing the same extension. 182 // Simulate another mechanism installing the same extension.
192 scoped_refptr<const Extension> extension = 183 scoped_refptr<const Extension> extension =
193 ExtensionBuilder().SetLocation(Manifest::INTERNAL) 184 ExtensionBuilder()
194 .SetID(kTestExtensionId) 185 .SetLocation(Manifest::INTERNAL)
195 .SetManifest(manifest.Pass()) 186 .SetID(kTestExtensionId)
196 .Build(); 187 .SetManifest(std::move(manifest))
188 .Build();
197 extension_service()->OnExtensionInstalled(extension.get(), 189 extension_service()->OnExtensionInstalled(extension.get(),
198 syncer::StringOrdinal(), 190 syncer::StringOrdinal(),
199 0); 191 0);
200 192
201 run_loop.Run(); 193 run_loop.Run();
202 194
203 // Wait for the WebstoreInstaller to be destroyed. Bad things happen if we 195 // Wait for the WebstoreInstaller to be destroyed. Bad things happen if we
204 // don't wait for this. 196 // don't wait for this.
205 base::RunLoop run_loop2; 197 base::RunLoop run_loop2;
206 installer->SetDeletedClosure(run_loop2.QuitClosure()); 198 installer->SetDeletedClosure(run_loop2.QuitClosure());
207 installer = nullptr; 199 installer = nullptr;
208 run_loop2.Run(); 200 run_loop2.Run();
209 201
210 EXPECT_TRUE(success()); 202 EXPECT_TRUE(success());
211 ExtensionRegistry* registry = ExtensionRegistry::Get(profile()); 203 ExtensionRegistry* registry = ExtensionRegistry::Get(profile());
212 // Extension ends up as disabled because of permissions. 204 // Extension ends up as disabled because of permissions.
213 ASSERT_TRUE(registry->disabled_extensions().GetByID(kTestExtensionId)); 205 ASSERT_TRUE(registry->disabled_extensions().GetByID(kTestExtensionId));
214 } 206 }
215 207
216 } // namespace extensions 208 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/webstore_installer.cc ('k') | chrome/browser/extensions/webstore_reinstaller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698