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

Side by Side Diff: chrome/browser/extensions/extension_action_runner_browsertest.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 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/extension_action_runner.h"
6
5 #include <stddef.h> 7 #include <stddef.h>
6 8
9 #include <memory>
7 #include <utility> 10 #include <utility>
8 #include <vector> 11 #include <vector>
9 12
10 #include "base/files/file_path.h" 13 #include "base/files/file_path.h"
11 #include "base/macros.h" 14 #include "base/macros.h"
12 #include "base/memory/scoped_ptr.h" 15 #include "base/memory/ptr_util.h"
13 #include "base/strings/stringprintf.h" 16 #include "base/strings/stringprintf.h"
14 #include "chrome/browser/extensions/extension_action.h" 17 #include "chrome/browser/extensions/extension_action.h"
15 #include "chrome/browser/extensions/extension_action_runner.h"
16 #include "chrome/browser/extensions/extension_browsertest.h" 18 #include "chrome/browser/extensions/extension_browsertest.h"
17 #include "chrome/browser/extensions/extension_util.h" 19 #include "chrome/browser/extensions/extension_util.h"
18 #include "chrome/browser/extensions/tab_helper.h" 20 #include "chrome/browser/extensions/tab_helper.h"
19 #include "chrome/browser/extensions/test_extension_dir.h" 21 #include "chrome/browser/extensions/test_extension_dir.h"
20 #include "chrome/browser/ui/browser.h" 22 #include "chrome/browser/ui/browser.h"
21 #include "chrome/browser/ui/tabs/tab_strip_model.h" 23 #include "chrome/browser/ui/tabs/tab_strip_model.h"
22 #include "chrome/test/base/ui_test_utils.h" 24 #include "chrome/test/base/ui_test_utils.h"
23 #include "content/public/browser/navigation_entry.h" 25 #include "content/public/browser/navigation_entry.h"
24 #include "content/public/browser/web_contents.h" 26 #include "content/public/browser/web_contents.h"
25 #include "content/public/test/browser_test_utils.h" 27 #include "content/public/test/browser_test_utils.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 void TearDownOnMainThread() override; 93 void TearDownOnMainThread() override;
92 94
93 // Returns an extension with the given |host_type| and |injection_type|. If 95 // Returns an extension with the given |host_type| and |injection_type|. If
94 // one already exists, the existing extension will be returned. Othewrwise, 96 // one already exists, the existing extension will be returned. Othewrwise,
95 // one will be created. 97 // one will be created.
96 // This could potentially return NULL if LoadExtension() fails. 98 // This could potentially return NULL if LoadExtension() fails.
97 const Extension* CreateExtension(HostType host_type, 99 const Extension* CreateExtension(HostType host_type,
98 InjectionType injection_type); 100 InjectionType injection_type);
99 101
100 private: 102 private:
101 std::vector<scoped_ptr<TestExtensionDir>> test_extension_dirs_; 103 std::vector<std::unique_ptr<TestExtensionDir>> test_extension_dirs_;
102 std::vector<const Extension*> extensions_; 104 std::vector<const Extension*> extensions_;
103 }; 105 };
104 106
105 void ExtensionActionRunnerBrowserTest::SetUpCommandLine( 107 void ExtensionActionRunnerBrowserTest::SetUpCommandLine(
106 base::CommandLine* command_line) { 108 base::CommandLine* command_line) {
107 ExtensionBrowserTest::SetUpCommandLine(command_line); 109 ExtensionBrowserTest::SetUpCommandLine(command_line);
108 // We append the actual switch to the commandline because it needs to be 110 // We append the actual switch to the commandline because it needs to be
109 // passed over to the renderer, which a FeatureSwitch::ScopedOverride will 111 // passed over to the renderer, which a FeatureSwitch::ScopedOverride will
110 // not do. 112 // not do.
111 command_line->AppendSwitch(switches::kEnableScriptsRequireAction); 113 command_line->AppendSwitch(switches::kEnableScriptsRequireAction);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 std::string manifest = base::StringPrintf( 150 std::string manifest = base::StringPrintf(
149 "{" 151 "{"
150 " \"name\": \"%s\"," 152 " \"name\": \"%s\","
151 " \"version\": \"1.0\"," 153 " \"version\": \"1.0\","
152 " \"manifest_version\": 2," 154 " \"manifest_version\": 2,"
153 " %s," 155 " %s,"
154 " %s" 156 " %s"
155 "}", 157 "}",
156 name.c_str(), permissions.c_str(), scripts.c_str()); 158 name.c_str(), permissions.c_str(), scripts.c_str());
157 159
158 scoped_ptr<TestExtensionDir> dir(new TestExtensionDir); 160 std::unique_ptr<TestExtensionDir> dir(new TestExtensionDir);
159 dir->WriteManifest(manifest); 161 dir->WriteManifest(manifest);
160 dir->WriteFile(FILE_PATH_LITERAL("script.js"), 162 dir->WriteFile(FILE_PATH_LITERAL("script.js"),
161 injection_type == CONTENT_SCRIPT ? kContentScriptSource 163 injection_type == CONTENT_SCRIPT ? kContentScriptSource
162 : kBackgroundScriptSource); 164 : kBackgroundScriptSource);
163 165
164 const Extension* extension = LoadExtension(dir->unpacked_path()); 166 const Extension* extension = LoadExtension(dir->unpacked_path());
165 if (extension) { 167 if (extension) {
166 test_extension_dirs_.push_back(std::move(dir)); 168 test_extension_dirs_.push_back(std::move(dir));
167 extensions_.push_back(extension); 169 extensions_.push_back(extension);
168 } 170 }
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 // injected. 465 // injected.
464 ExtensionActionRunner* runner = 466 ExtensionActionRunner* runner =
465 ExtensionActionRunner::GetForWebContents(web_contents); 467 ExtensionActionRunner::GetForWebContents(web_contents);
466 ASSERT_TRUE(runner); 468 ASSERT_TRUE(runner);
467 EXPECT_TRUE(runner->WantsToRun(extension)); 469 EXPECT_TRUE(runner->WantsToRun(extension));
468 EXPECT_EQ("undefined", GetValue(web_contents)); 470 EXPECT_EQ("undefined", GetValue(web_contents));
469 471
470 // Wire up the runner to automatically accept the bubble to prompt for page 472 // Wire up the runner to automatically accept the bubble to prompt for page
471 // refresh. 473 // refresh.
472 runner->set_default_bubble_close_action_for_testing( 474 runner->set_default_bubble_close_action_for_testing(
473 make_scoped_ptr(new ToolbarActionsBarBubbleDelegate::CloseAction( 475 base::WrapUnique(new ToolbarActionsBarBubbleDelegate::CloseAction(
474 ToolbarActionsBarBubbleDelegate::CLOSE_EXECUTE))); 476 ToolbarActionsBarBubbleDelegate::CLOSE_EXECUTE)));
475 477
476 content::NavigationEntry* entry = 478 content::NavigationEntry* entry =
477 web_contents->GetController().GetLastCommittedEntry(); 479 web_contents->GetController().GetLastCommittedEntry();
478 ASSERT_TRUE(entry); 480 ASSERT_TRUE(entry);
479 const int first_nav_id = entry->GetUniqueID(); 481 const int first_nav_id = entry->GetUniqueID();
480 482
481 // Run the extension action, which should cause a page refresh (since we 483 // Run the extension action, which should cause a page refresh (since we
482 // automatically accepted the bubble prompting us), and the extension should 484 // automatically accepted the bubble prompting us), and the extension should
483 // have injected at document start. 485 // have injected at document start.
(...skipping 15 matching lines...) Expand all
499 web_contents->GetController().Reload(true); 501 web_contents->GetController().Reload(true);
500 EXPECT_TRUE(content::WaitForLoadStop(web_contents)); 502 EXPECT_TRUE(content::WaitForLoadStop(web_contents));
501 503
502 // The extension should again want to run. Automatically dismiss the bubble 504 // The extension should again want to run. Automatically dismiss the bubble
503 // that pops up prompting for page refresh. 505 // that pops up prompting for page refresh.
504 EXPECT_TRUE(runner->WantsToRun(extension)); 506 EXPECT_TRUE(runner->WantsToRun(extension));
505 EXPECT_EQ("undefined", GetValue(web_contents)); 507 EXPECT_EQ("undefined", GetValue(web_contents));
506 const int next_nav_id = 508 const int next_nav_id =
507 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID(); 509 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID();
508 runner->set_default_bubble_close_action_for_testing( 510 runner->set_default_bubble_close_action_for_testing(
509 make_scoped_ptr(new ToolbarActionsBarBubbleDelegate::CloseAction( 511 base::WrapUnique(new ToolbarActionsBarBubbleDelegate::CloseAction(
510 ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION))); 512 ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION)));
511 513
512 // Try running the extension. Nothing should happen, because the user 514 // Try running the extension. Nothing should happen, because the user
513 // didn't agree to refresh the page. The extension should still want to run. 515 // didn't agree to refresh the page. The extension should still want to run.
514 runner->RunAction(extension, true); 516 runner->RunAction(extension, true);
515 base::RunLoop().RunUntilIdle(); 517 base::RunLoop().RunUntilIdle();
516 EXPECT_TRUE(content::WaitForLoadStop(web_contents)); 518 EXPECT_TRUE(content::WaitForLoadStop(web_contents));
517 EXPECT_EQ("undefined", GetValue(web_contents)); 519 EXPECT_EQ("undefined", GetValue(web_contents));
518 EXPECT_EQ( 520 EXPECT_EQ(
519 next_nav_id, 521 next_nav_id,
520 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID()); 522 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID());
521 523
522 // Repeat with a dismissal from bubble deactivation - same story. 524 // Repeat with a dismissal from bubble deactivation - same story.
523 runner->set_default_bubble_close_action_for_testing( 525 runner->set_default_bubble_close_action_for_testing(
524 make_scoped_ptr(new ToolbarActionsBarBubbleDelegate::CloseAction( 526 base::WrapUnique(new ToolbarActionsBarBubbleDelegate::CloseAction(
525 ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_DEACTIVATION))); 527 ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_DEACTIVATION)));
526 runner->RunAction(extension, true); 528 runner->RunAction(extension, true);
527 base::RunLoop().RunUntilIdle(); 529 base::RunLoop().RunUntilIdle();
528 EXPECT_TRUE(content::WaitForLoadStop(web_contents)); 530 EXPECT_TRUE(content::WaitForLoadStop(web_contents));
529 EXPECT_EQ("undefined", GetValue(web_contents)); 531 EXPECT_EQ("undefined", GetValue(web_contents));
530 EXPECT_EQ( 532 EXPECT_EQ(
531 next_nav_id, 533 next_nav_id,
532 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID()); 534 web_contents->GetController().GetLastCommittedEntry()->GetUniqueID());
533 } 535 }
534 536
(...skipping 24 matching lines...) Expand all
559 561
560 ASSERT_TRUE(embedded_test_server()->Start()); 562 ASSERT_TRUE(embedded_test_server()->Start());
561 ui_test_utils::NavigateToURL( 563 ui_test_utils::NavigateToURL(
562 browser(), embedded_test_server()->GetURL("/extensions/test_file.html")); 564 browser(), embedded_test_server()->GetURL("/extensions/test_file.html"));
563 565
564 for (size_t i = 0u; i < arraysize(testers); ++i) 566 for (size_t i = 0u; i < arraysize(testers); ++i)
565 EXPECT_TRUE(testers[i].Verify()) << kExtensionNames[i]; 567 EXPECT_TRUE(testers[i].Verify()) << kExtensionNames[i];
566 } 568 }
567 569
568 } // namespace extensions 570 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_action_runner.cc ('k') | chrome/browser/extensions/extension_action_storage_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698