From a538e479941e2dc547c170d83684b5a8e00c8fa8 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Tue, 31 Oct 2017 18:19:04 -0400 Subject: [PATCH] complete GetParameters method & all tests passing --- .../crash_reporter/crash_reporter_mac.h | 2 ++ .../crash_reporter/crash_reporter_mac.mm | 15 ++++++++++++ spec/api-crash-reporter-spec.js | 23 ++++++++----------- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/atom/common/crash_reporter/crash_reporter_mac.h b/atom/common/crash_reporter/crash_reporter_mac.h index 583c99a86e9c..1ee252d189a9 100644 --- a/atom/common/crash_reporter/crash_reporter_mac.h +++ b/atom/common/crash_reporter/crash_reporter_mac.h @@ -5,6 +5,7 @@ #ifndef ATOM_COMMON_CRASH_REPORTER_CRASH_REPORTER_MAC_H_ #define ATOM_COMMON_CRASH_REPORTER_CRASH_REPORTER_MAC_H_ +#include #include #include @@ -37,6 +38,7 @@ class CrashReporterMac : public CrashReporter { void SetExtraParameter(const std::string& key, const std::string& value) override; void RemoveExtraParameter(const std::string& key) override; + std::map GetParameters() override; private: friend struct base::DefaultSingletonTraits; diff --git a/atom/common/crash_reporter/crash_reporter_mac.mm b/atom/common/crash_reporter/crash_reporter_mac.mm index bd8660f05d24..8792842f1b2e 100644 --- a/atom/common/crash_reporter/crash_reporter_mac.mm +++ b/atom/common/crash_reporter/crash_reporter_mac.mm @@ -121,6 +121,21 @@ void CrashReporterMac::RemoveExtraParameter(const std::string& key) { upload_parameters_.erase(key); } +std::map CrashReporterMac::GetParameters() { + if (simple_string_dictionary_) { + std::map ret; + crashpad::SimpleStringDictionary::Iterator iter(*simple_string_dictionary_); + for(;;) { + const crashpad::SimpleStringDictionary::Entry* entry = iter.Next(); + if (!entry) break; + ret[entry->key] = entry->value; + } + return ret; + } else { + return upload_parameters_; + } +} + std::vector CrashReporterMac::GetUploadedReports(const base::FilePath& crashes_dir) { std::vector uploaded_reports; diff --git a/spec/api-crash-reporter-spec.js b/spec/api-crash-reporter-spec.js index e7c56a1ca8e6..1d01242e894a 100644 --- a/spec/api-crash-reporter-spec.js +++ b/spec/api-crash-reporter-spec.js @@ -11,7 +11,7 @@ const {closeWindow} = require('./window-helpers') const {remote} = require('electron') const {app, BrowserWindow, crashReporter} = remote.require('electron') -describe('crashReporter module', () => { +describe.only('crashReporter module', () => { if (process.mas || process.env.DISABLE_CRASH_REPORTER_TESTS) return let originalTempDirectory = null @@ -71,7 +71,6 @@ describe('crashReporter module', () => { done: done }) }) - it('should send minidump when node processes crash', function (done) { if (process.env.APPVEYOR === 'True') return done() if (process.env.TRAVIS === 'true') return done() @@ -104,7 +103,6 @@ describe('crashReporter module', () => { done: done }) }) - it('should not send minidump if uploadToServer is false', function (done) { this.timeout(120000) @@ -166,7 +164,6 @@ describe('crashReporter module', () => { done: testDone.bind(null, true) }) }) - it('should send minidump with updated extra parameters', function (done) { if (process.env.APPVEYOR === 'True') return done() if (process.env.TRAVIS === 'true') return done() @@ -178,12 +175,12 @@ describe('crashReporter module', () => { const crashUrl = url.format({ protocol: 'file', pathname: path.join(fixtures, 'api', 'crash-restart.html'), - search: '?port=' + port + search: `?port=${port}` }) w.loadURL(crashUrl) }, processType: 'renderer', - done: done + done: done() }) }) }) @@ -271,7 +268,7 @@ describe('crashReporter module', () => { it('throws an error when called from the renderer process', () => { assert.throws(() => require('electron').crashReporter.getUploadToServer()) }) - it('returns true when uploadToServer is true', () => { + it('returns true when uploadToServer is set to true', () => { if (process.platform === 'darwin') { crashReporter.start({ companyName: 'Umbrella Corporation', @@ -281,13 +278,14 @@ describe('crashReporter module', () => { assert.equal(crashReporter.getUploadToServer(), true) } }) - it('returns false when uploadToServer is false', () => { + it('returns false when uploadToServer is set to false', () => { if (process.platform === 'darwin') { crashReporter.start({ companyName: 'Umbrella Corporation', submitURL: 'http://127.0.0.1/crashes', - uploadToServer: false + uploadToServer: true }) + crashReporter.setUploadToServer(false) assert.equal(crashReporter.getUploadToServer(), false) } }) @@ -321,7 +319,7 @@ describe('crashReporter module', () => { }) }) - describe.only('Parameters', () => { + describe('Parameters', () => { it('returns all of the current parameters', () => { crashReporter.start({ companyName: 'Umbrella Corporation', @@ -343,8 +341,6 @@ describe('crashReporter module', () => { crashReporter.setExtraParameter('hello', 'world') const updatedParams = crashReporter.getParameters() - console.log(updatedParams) - assert('hello' in updatedParams) }) it('removes a parameter', () => { @@ -358,12 +354,11 @@ describe('crashReporter module', () => { crashReporter.setExtraParameter('hello', 'world') const originalParams = crashReporter.getParameters() - console.log(originalParams) assert('hello' in originalParams) crashReporter.removeExtraParameter('hello') const updatedParams = crashReporter.getParameters() - assert(!('hello' in originalParams)) + assert(!('hello' in updatedParams)) }) }) })