From c5aeda1fdd81fc5676a22725b2566328f692cf5c Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Mon, 11 Dec 2017 00:20:26 -0500 Subject: [PATCH] fixes from code review --- .../api/atom_api_system_preferences_mac.mm | 12 +++++------ docs/api/system-preferences.md | 4 ++-- spec/api-system-preferences-spec.js | 20 +++++++++---------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/atom/browser/api/atom_api_system_preferences_mac.mm b/atom/browser/api/atom_api_system_preferences_mac.mm index 23dd650b74..70bbe771b0 100644 --- a/atom/browser/api/atom_api_system_preferences_mac.mm +++ b/atom/browser/api/atom_api_system_preferences_mac.mm @@ -146,13 +146,13 @@ v8::Local SystemPreferences::GetUserDefault( void SystemPreferences::RegisterDefaults(mate::Arguments* args) { base::DictionaryValue value; - if (!args->GetNext(&value)) { - args->ThrowError("Unable to parse userDefaults dict"); - return; - } - - if (NSDictionary* dict = DictionaryValueToNSDictionary(value)) { + args->GetNext(&value); + + @try { + NSDictionary* dict = DictionaryValueToNSDictionary(value); [[NSUserDefaults standardUserDefaults] registerDefaults:dict]; + } @catch (NSException* exception) { + args->ThrowError("Invalid userDefault data provided"); } } diff --git a/docs/api/system-preferences.md b/docs/api/system-preferences.md index 2d0a4ef9a0..8afee8ddb0 100644 --- a/docs/api/system-preferences.md +++ b/docs/api/system-preferences.md @@ -109,8 +109,8 @@ Same as `unsubscribeNotification`, but removes the subscriber from `NSNotificati ### `systemPreferences.registerDefaults(defaults)` _macOS_ * `defaults` Object - a dictionary of (`key: value`) user defaults - * `key` String - must be of type `string` - * `value` Object - object of type `string`, `boolean`, `integer`, `float`, `double`, + * `key` String + * `value` (String | Boolean | Number) - object of type `string`, `boolean`, `integer`, `float`, `double`, `url`, `array`, or `dictionary`. Allows for registering of your application's preference defaults in `NSUserDefaults`. diff --git a/spec/api-system-preferences-spec.js b/spec/api-system-preferences-spec.js index 93368ef577..be7820c916 100644 --- a/spec/api-system-preferences-spec.js +++ b/spec/api-system-preferences-spec.js @@ -42,25 +42,25 @@ describe('systemPreferences module', () => { it('registers defaults', () => { const userDefaults = { - 'one': 'onee', - 'two': 'twoo', - 'three': 'threee', - 'four': 'fourr', - 'five': 'fivee' + 'one': 'ONE', + 'two': 'TWO', + 'three': 'THREE' } systemPreferences.registerDefaults(userDefaults) - const val = systemPreferences.getUserDefault('two', 'string') - assert.equal(val, 'twoo') + for (const [key, expectedValue] of Object.entries(userDefaults)) { + const actualValue = systemPreferences.getUserDefault(key, 'string') + assert.equal(actualValue, expectedValue) + } }) it('throws when bad defaults are passed', () => { - const userDefaults = 1 + const badDefaults1 = { 'one': null } assert.throws(() => { - systemPreferences.setUserDefault(userDefaults) - }, `Unable to parse userDefaults dict`) + systemPreferences.registerDefaults(badDefaults1) + }, 'Invalid userDefault data provided') }) })