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

Unified Diff: chrome/browser/extensions/api/tabs/tabs_api_unittest.cc

Issue 2630753003: Separate validation failures from other failures in ExecuteCodeFunction. (Closed)
Patch Set: add comment Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
diff --git a/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc b/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
index 506cc9455b791173a02f167bbe1bbb4b32eccee0..951c18301cf823ab5c3fdef814805d7c83479e4f 100644
--- a/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_api_unittest.cc
@@ -5,6 +5,7 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/extensions/api/tabs/tabs_api.h"
+#include "chrome/browser/extensions/api/tabs/tabs_constants.h"
#include "chrome/browser/extensions/extension_function_test_utils.h"
#include "chrome/browser/extensions/extension_service_test_base.h"
#include "chrome/browser/extensions/extension_tab_util.h"
@@ -270,4 +271,30 @@ TEST_F(TabsApiUnitTest, PDFExtensionNavigation) {
base::RunLoop().RunUntilIdle();
}
+// Tests that non-validation failure in tabs.executeScript results in error, and
+// not bad_message.
+// Regression test for https://crbug.com/642794.
+TEST_F(TabsApiUnitTest, ExecuteScriptNoTabIsNonFatalError) {
+ // An extension with "tabs" permission.
+ scoped_refptr<const Extension> extension =
+ ExtensionBuilder()
+ .SetManifest(
+ DictionaryBuilder()
+ .Set("name", "Extension with tabs permission")
+ .Set("version", "1.0")
+ .Set("manifest_version", 2)
+ .Set("permissions", ListBuilder().Append("tabs").Build())
+ .Build())
+ .Build();
+ scoped_refptr<TabsExecuteScriptFunction> function(
+ new TabsExecuteScriptFunction());
+ function->set_extension(extension);
+ const char* kArgs = "[\"\", {\"code\": \"\"}]";
Devlin 2017/01/24 16:09:05 It looks like raw string literals are allowed now,
lazyboy 2017/01/24 23:36:07 Neat. Done.
+ std::string error = extension_function_test_utils::RunFunctionAndReturnError(
+ function.get(), kArgs,
+ browser(), // browser() doesn't have any tabs.
+ extension_function_test_utils::NONE);
+ EXPECT_EQ(tabs_constants::kNoTabInBrowserWindowError, error);
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698