1 // Copyright 2020 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 "chrome/browser/error_reporting/mock_chrome_js_error_report_processor.h"
6 
7 #include "base/check.h"
8 #include "components/crash/content/browser/error_reporting/mock_crash_endpoint.h"
9 
10 MockChromeJsErrorReportProcessor::MockChromeJsErrorReportProcessor() = default;
11 MockChromeJsErrorReportProcessor::~MockChromeJsErrorReportProcessor() = default;
12 
SetAsDefault()13 void MockChromeJsErrorReportProcessor::SetAsDefault() {
14   JsErrorReportProcessor::SetDefault(this);
15 }
16 
17 // static
SetDefaultTo(scoped_refptr<JsErrorReportProcessor> new_default)18 void MockChromeJsErrorReportProcessor::SetDefaultTo(
19     scoped_refptr<JsErrorReportProcessor> new_default) {
20   JsErrorReportProcessor::SetDefault(new_default);
21 }
22 
SetCrashEndpoint(std::string crash_endpoint)23 void MockChromeJsErrorReportProcessor::SetCrashEndpoint(
24     std::string crash_endpoint) {
25   crash_endpoint_ = crash_endpoint;
26 }
27 
SetCrashEndpointStaging(std::string crash_endpoint)28 void MockChromeJsErrorReportProcessor::SetCrashEndpointStaging(
29     std::string crash_endpoint) {
30   crash_endpoint_staging_ = crash_endpoint;
31 }
32 
GetCrashEndpoint()33 std::string MockChromeJsErrorReportProcessor::GetCrashEndpoint() {
34   return crash_endpoint_;
35 }
36 
GetCrashEndpointStaging()37 std::string MockChromeJsErrorReportProcessor::GetCrashEndpointStaging() {
38   return crash_endpoint_staging_;
39 }
40 
GetOsVersion(int32_t & os_major_version,int32_t & os_minor_version,int32_t & os_bugfix_version)41 void MockChromeJsErrorReportProcessor::GetOsVersion(
42     int32_t& os_major_version,
43     int32_t& os_minor_version,
44     int32_t& os_bugfix_version) {
45   os_major_version = 7;
46   os_minor_version = 20;
47   os_bugfix_version = 1;
48 }
49 
ScopedMockChromeJsErrorReportProcessor(const MockCrashEndpoint & endpoint)50 ScopedMockChromeJsErrorReportProcessor::ScopedMockChromeJsErrorReportProcessor(
51     const MockCrashEndpoint& endpoint)
52     : processor_(base::MakeRefCounted<MockChromeJsErrorReportProcessor>()),
53       previous_(JsErrorReportProcessor::Get()) {
54   processor_->SetCrashEndpoint(endpoint.GetCrashEndpointURL());
55   processor_->SetAsDefault();
56 }
57 
58 ScopedMockChromeJsErrorReportProcessor::
~ScopedMockChromeJsErrorReportProcessor()59     ~ScopedMockChromeJsErrorReportProcessor() {
60   DCHECK(processor_ == JsErrorReportProcessor::Get())
61       << "processor_ is no longer the default processor.";
62 
63   MockChromeJsErrorReportProcessor::SetDefaultTo(previous_);
64 }
65