Home | History | Annotate | Download | only in browser
      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
      3 // found in the LICENSE file.
      4 
      5 #include "extensions/browser/extension_error_test_util.h"
      6 
      7 #include "base/logging.h"
      8 #include "base/strings/string_util.h"
      9 #include "base/strings/utf_string_conversions.h"
     10 #include "content/public/common/url_constants.h"
     11 #include "extensions/browser/extension_error.h"
     12 #include "extensions/common/constants.h"
     13 #include "extensions/common/stack_frame.h"
     14 #include "url/gurl.h"
     15 
     16 namespace extensions {
     17 namespace error_test_util {
     18 
     19 namespace {
     20 const char kDefaultStackTrace[] = "function_name (https://url.com:1:1)";
     21 }
     22 
     23 scoped_ptr<ExtensionError> CreateNewRuntimeError(
     24     const std::string& extension_id,
     25     const std::string& message,
     26     bool from_incognito) {
     27   StackTrace stack_trace;
     28   scoped_ptr<StackFrame> frame =
     29       StackFrame::CreateFromText(base::ASCIIToUTF16(kDefaultStackTrace));
     30   CHECK(frame.get());
     31   stack_trace.push_back(*frame);
     32 
     33   base::string16 source =
     34       base::UTF8ToUTF16(std::string(kExtensionScheme) +
     35                             url::kStandardSchemeSeparator +
     36                             extension_id);
     37 
     38   return scoped_ptr<ExtensionError>(
     39       new RuntimeError(extension_id,
     40                        from_incognito,
     41                        source,
     42                        base::UTF8ToUTF16(message),
     43                        stack_trace,
     44                        GURL::EmptyGURL(),  // no context url
     45                        logging::LOG_INFO,
     46                        0,
     47                        0 /* Render [View|Process] ID */));
     48 }
     49 
     50 scoped_ptr<ExtensionError> CreateNewRuntimeError(
     51     const std::string& extension_id, const std::string& message) {
     52   return CreateNewRuntimeError(extension_id, message, false);
     53 }
     54 
     55 scoped_ptr<ExtensionError> CreateNewManifestError(
     56     const std::string& extension_id, const std::string& message) {
     57   return scoped_ptr<ExtensionError>(
     58       new ManifestError(extension_id,
     59                         base::UTF8ToUTF16(message),
     60                         base::string16(),
     61                         base::string16()));
     62 }
     63 
     64 }  // namespace error_test_util
     65 }  // namespace extensions
     66