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

Side by Side Diff: chrome/browser/extensions/error_console/error_console_browsertest.cc

Issue 23604050: Namespace internal extension JavaScript modules with extensions:: so that they (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Error Console Tests Fixed (uploaded by rdevlin.cronin) Created 7 years, 3 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
« no previous file with comments | « no previous file | chrome/renderer/extensions/module_system.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/error_console/error_console.h" 5 #include "chrome/browser/extensions/error_console/error_console.h"
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 #include "base/strings/stringprintf.h"
10 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
11 #include "chrome/browser/extensions/extension_browsertest.h" 12 #include "chrome/browser/extensions/extension_browsertest.h"
12 #include "chrome/browser/extensions/extension_service.h" 13 #include "chrome/browser/extensions/extension_service.h"
13 #include "chrome/browser/extensions/extension_system.h" 14 #include "chrome/browser/extensions/extension_system.h"
14 #include "chrome/browser/extensions/extension_toolbar_model.h" 15 #include "chrome/browser/extensions/extension_toolbar_model.h"
15 #include "chrome/browser/profiles/profile.h" 16 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/common/extensions/extension.h" 17 #include "chrome/common/extensions/extension.h"
17 #include "chrome/common/extensions/feature_switch.h" 18 #include "chrome/common/extensions/feature_switch.h"
18 #include "chrome/common/pref_names.h" 19 #include "chrome/common/pref_names.h"
19 #include "chrome/test/base/ui_test_utils.h" 20 #include "chrome/test/base/ui_test_utils.h"
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 kNoFlags, 420 kNoFlags,
420 1u, // One error: A reference error from within the browser action. 421 1u, // One error: A reference error from within the browser action.
421 ACTION_BROWSER_ACTION, 422 ACTION_BROWSER_ACTION,
422 &extension); 423 &extension);
423 424
424 std::string script_url = extension->url().Resolve("browser_action.js").spec(); 425 std::string script_url = extension->url().Resolve("browser_action.js").spec();
425 426
426 const ErrorConsole::ErrorList& errors = 427 const ErrorConsole::ErrorList& errors =
427 error_console()->GetErrorsForExtension(extension->id()); 428 error_console()->GetErrorsForExtension(extension->id());
428 429
430 std::string event_bindings_str =
431 base::StringPrintf("extensions::%s", kEventBindings);
432
429 CheckRuntimeError( 433 CheckRuntimeError(
430 errors[0], 434 errors[0],
431 extension->id(), 435 extension->id(),
432 script_url, 436 script_url,
433 false, // not incognito 437 false, // not incognito
434 "Error in event handler for browserAction.onClicked: " 438 "Error in event handler for browserAction.onClicked: "
435 "ReferenceError: baz is not defined", 439 "ReferenceError: baz is not defined",
436 logging::LOG_ERROR, 440 logging::LOG_ERROR,
437 extension->url().Resolve(kBackgroundPageName), 441 extension->url().Resolve(kBackgroundPageName),
438 6u); 442 6u);
439 443
440 const StackTrace& stack_trace = GetStackTraceFromError(errors[0]); 444 const StackTrace& stack_trace = GetStackTraceFromError(errors[0]);
441 445
442 CheckStackFrame(stack_trace[0], script_url, kAnonymousFunction); 446 CheckStackFrame(stack_trace[0], script_url, kAnonymousFunction);
443 CheckStackFrame(stack_trace[1], 447 CheckStackFrame(stack_trace[1],
444 "extensions::SafeBuiltins", 448 "extensions::SafeBuiltins",
445 std::string("Function.target.") + kAnonymousFunction); 449 std::string("Function.target.") + kAnonymousFunction);
446 CheckStackFrame( 450 CheckStackFrame(
447 stack_trace[2], kEventBindings, "Event.dispatchToListener"); 451 stack_trace[2], event_bindings_str, "Event.dispatchToListener");
448 CheckStackFrame(stack_trace[3], kEventBindings, "Event.dispatch_"); 452 CheckStackFrame(stack_trace[3], event_bindings_str, "Event.dispatch_");
449 CheckStackFrame(stack_trace[4], kEventBindings, "dispatchArgs"); 453 CheckStackFrame(stack_trace[4], event_bindings_str, "dispatchArgs");
450 CheckStackFrame(stack_trace[5], kEventBindings, "dispatchEvent"); 454 CheckStackFrame(stack_trace[5], event_bindings_str, "dispatchEvent");
451 } 455 }
452 456
453 // Test that we can catch an error for calling an API with improper arguments. 457 // Test that we can catch an error for calling an API with improper arguments.
454 IN_PROC_BROWSER_TEST_F(ErrorConsoleBrowserTest, BadAPIArgumentsRuntimeError) { 458 IN_PROC_BROWSER_TEST_F(ErrorConsoleBrowserTest, BadAPIArgumentsRuntimeError) {
455 const Extension* extension = NULL; 459 const Extension* extension = NULL;
456 LoadExtensionAndCheckErrors( 460 LoadExtensionAndCheckErrors(
457 "bad_api_arguments_runtime_error", 461 "bad_api_arguments_runtime_error",
458 kNoFlags, 462 kNoFlags,
459 1, // One error: call an API with improper arguments. 463 1, // One error: call an API with improper arguments.
460 ACTION_NONE, 464 ACTION_NONE,
461 &extension); 465 &extension);
462 466
463 const ErrorConsole::ErrorList& errors = 467 const ErrorConsole::ErrorList& errors =
464 error_console()->GetErrorsForExtension(extension->id()); 468 error_console()->GetErrorsForExtension(extension->id());
465 469
470 std::string schema_utils_str =
471 base::StringPrintf("extensions::%s", kSchemaUtils);
472
466 CheckRuntimeError( 473 CheckRuntimeError(
467 errors[0], 474 errors[0],
468 extension->id(), 475 extension->id(),
469 kSchemaUtils, // API calls are checked in schemaUtils.js. 476 schema_utils_str, // API calls are checked in schemaUtils.js.
470 false, // not incognito 477 false, // not incognito
471 "Uncaught Error: Invocation of form " 478 "Uncaught Error: Invocation of form "
472 "tabs.get(string, function) doesn't match definition " 479 "tabs.get(string, function) doesn't match definition "
473 "tabs.get(integer tabId, function callback)", 480 "tabs.get(integer tabId, function callback)",
474 logging::LOG_ERROR, 481 logging::LOG_ERROR,
475 extension->url().Resolve(kBackgroundPageName), 482 extension->url().Resolve(kBackgroundPageName),
476 1u); 483 1u);
477 484
478 const StackTrace& stack_trace = GetStackTraceFromError(errors[0]); 485 const StackTrace& stack_trace = GetStackTraceFromError(errors[0]);
479 ASSERT_EQ(1u, stack_trace.size()); 486 ASSERT_EQ(1u, stack_trace.size());
480 CheckStackFrame(stack_trace[0], 487 CheckStackFrame(stack_trace[0],
481 kSchemaUtils, 488 schema_utils_str,
482 kAnonymousFunction); 489 kAnonymousFunction);
483 } 490 }
484 491
485 // Test that we catch an error when we try to call an API method without 492 // Test that we catch an error when we try to call an API method without
486 // permission. 493 // permission.
487 IN_PROC_BROWSER_TEST_F(ErrorConsoleBrowserTest, BadAPIPermissionsRuntimeError) { 494 IN_PROC_BROWSER_TEST_F(ErrorConsoleBrowserTest, BadAPIPermissionsRuntimeError) {
488 const Extension* extension = NULL; 495 const Extension* extension = NULL;
489 LoadExtensionAndCheckErrors( 496 LoadExtensionAndCheckErrors(
490 "bad_api_permissions_runtime_error", 497 "bad_api_permissions_runtime_error",
491 kNoFlags, 498 kNoFlags,
(...skipping 19 matching lines...) Expand all
511 518
512 const StackTrace& stack_trace = GetStackTraceFromError(errors[0]); 519 const StackTrace& stack_trace = GetStackTraceFromError(errors[0]);
513 ASSERT_EQ(1u, stack_trace.size()); 520 ASSERT_EQ(1u, stack_trace.size());
514 CheckStackFrame(stack_trace[0], 521 CheckStackFrame(stack_trace[0],
515 script_url, 522 script_url,
516 kAnonymousFunction, 523 kAnonymousFunction,
517 5u, 1u); 524 5u, 1u);
518 } 525 }
519 526
520 } // namespace extensions 527 } // namespace extensions
OLDNEW
« no previous file with comments | « no previous file | chrome/renderer/extensions/module_system.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698