diff --git a/packages/firebase_crashlytics/CHANGELOG.md b/packages/firebase_crashlytics/CHANGELOG.md index 75afe030f843..65bb0a398ba4 100644 --- a/packages/firebase_crashlytics/CHANGELOG.md +++ b/packages/firebase_crashlytics/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.0.4+9 + +* Fixed custom keys implementation. +* Added tests for custom keys implementation. +* Removed a print statement. + ## 0.0.4+8 * Automatically use version from pubspec.yaml when reporting usage to Firebase. diff --git a/packages/firebase_crashlytics/example/test_driver/crashlytics.dart b/packages/firebase_crashlytics/example/test_driver/crashlytics.dart index b40b396f59c8..c1a6c1d3df9e 100644 --- a/packages/firebase_crashlytics/example/test_driver/crashlytics.dart +++ b/packages/firebase_crashlytics/example/test_driver/crashlytics.dart @@ -16,10 +16,15 @@ void main() { test('onError', () async { // This is currently only testing that we can log errors without crashing. - await Crashlytics.instance.setUserName('testing'); - await Crashlytics.instance.setUserIdentifier('hello'); + final Crashlytics crashlytics = Crashlytics.instance; + await crashlytics.setUserName('testing'); + await crashlytics.setUserIdentifier('hello'); + crashlytics.setBool('testBool', true); + crashlytics.setInt('testInt', 42); + crashlytics.setDouble('testDouble', 42.0); + crashlytics.setString('testString', 'bar'); Crashlytics.instance.log('testing'); - await Crashlytics.instance.onError( + await crashlytics.onError( FlutterErrorDetails( exception: 'testing', stack: StackTrace.fromString(''), diff --git a/packages/firebase_crashlytics/lib/src/firebase_crashlytics.dart b/packages/firebase_crashlytics/lib/src/firebase_crashlytics.dart index 9bb95238262d..dd43f7fd02f7 100644 --- a/packages/firebase_crashlytics/lib/src/firebase_crashlytics.dart +++ b/packages/firebase_crashlytics/lib/src/firebase_crashlytics.dart @@ -41,7 +41,7 @@ class Crashlytics { Trace.format(details.stack).trimRight().split('\n'); final List> stackTraceElements = getStackTraceElements(stackTraceLines); - final dynamic result = await channel + await channel .invokeMethod('Crashlytics#onError', { 'exception': details.exceptionAsString(), // FlutterErrorDetails.context has been migrated from a String to a @@ -52,7 +52,6 @@ class Crashlytics { 'logs': _logs.toList(), 'keys': _prepareKeys(), }); - print(result); } } @@ -156,6 +155,7 @@ class Crashlytics { } else if (value is bool) { crashlyticsKey['type'] = 'boolean'; } + crashlyticsKeys.add(crashlyticsKey); } return crashlyticsKeys; diff --git a/packages/firebase_crashlytics/pubspec.yaml b/packages/firebase_crashlytics/pubspec.yaml index 326d8693fb27..dadc332573cc 100644 --- a/packages/firebase_crashlytics/pubspec.yaml +++ b/packages/firebase_crashlytics/pubspec.yaml @@ -1,7 +1,7 @@ name: firebase_crashlytics description: Flutter plugin for Firebase Crashlytics. It reports uncaught errors to the Firebase console. -version: 0.0.4+8 +version: 0.0.4+9 author: Flutter Team homepage: https://github.com/flutter/plugins/tree/master/packages/firebase_crashlytics diff --git a/packages/firebase_crashlytics/test/firebase_crashlytics_test.dart b/packages/firebase_crashlytics/test/firebase_crashlytics_test.dart index 83a6530c8d1c..8eb771ee2707 100644 --- a/packages/firebase_crashlytics/test/firebase_crashlytics_test.dart +++ b/packages/firebase_crashlytics/test/firebase_crashlytics_test.dart @@ -42,13 +42,28 @@ void main() { ); crashlytics.enableInDevMode = true; crashlytics.log('foo'); + crashlytics.setBool('testBool', true); + crashlytics.setInt('testInt', 42); + crashlytics.setDouble('testDouble', 42.0); + crashlytics.setString('testString', 'bar'); await crashlytics.onError(details); expect(log[0].method, 'Crashlytics#onError'); expect(log[0].arguments['exception'], 'foo exception'); expect(log[0].arguments['context'], 'foo context'); expect(log[0].arguments['logs'], isNotEmpty); expect(log[0].arguments['logs'], contains('foo')); - expect(log[0].arguments['keys'], isEmpty); + expect(log[0].arguments['keys'][0]['key'], 'testBool'); + expect(log[0].arguments['keys'][0]['value'], isTrue); + expect(log[0].arguments['keys'][0]['type'], 'boolean'); + expect(log[0].arguments['keys'][1]['key'], 'testInt'); + expect(log[0].arguments['keys'][1]['value'], 42); + expect(log[0].arguments['keys'][1]['type'], 'int'); + expect(log[0].arguments['keys'][2]['key'], 'testDouble'); + expect(log[0].arguments['keys'][2]['value'], 42.0); + expect(log[0].arguments['keys'][2]['type'], 'double'); + expect(log[0].arguments['keys'][3]['key'], 'testString'); + expect(log[0].arguments['keys'][3]['value'], 'bar'); + expect(log[0].arguments['keys'][3]['type'], 'string'); }); test('isDebuggable', () async {