diff --git a/packages/in_app_purchase/CHANGELOG.md b/packages/in_app_purchase/CHANGELOG.md index 65f7f86a16e6..49e5845581af 100644 --- a/packages/in_app_purchase/CHANGELOG.md +++ b/packages/in_app_purchase/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.4+6 + +* Android: Fixed bug due to code -3 (SERVICE_TIMEOUT) in `BillingResponse` + ## 0.3.4+5 * Added necessary README docs for getting started with Android. diff --git a/packages/in_app_purchase/pubspec.yaml b/packages/in_app_purchase/pubspec.yaml index 42bb0d8f4619..55ac120b30c6 100644 --- a/packages/in_app_purchase/pubspec.yaml +++ b/packages/in_app_purchase/pubspec.yaml @@ -1,7 +1,7 @@ name: in_app_purchase description: A Flutter plugin for in-app purchases. Exposes APIs for making in-app purchases through the App Store and Google Play. homepage: https://github.com/flutter/plugins/tree/master/packages/in_app_purchase -version: 0.3.4+5 +version: 0.3.4+6 dependencies: async: ^2.0.8 diff --git a/packages/in_app_purchase/test/billing_client_wrappers/enum_converters_test.dart b/packages/in_app_purchase/test/billing_client_wrappers/enum_converters_test.dart new file mode 100644 index 000000000000..afa253fe768c --- /dev/null +++ b/packages/in_app_purchase/test/billing_client_wrappers/enum_converters_test.dart @@ -0,0 +1,95 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +import 'package:test/test.dart'; +import 'package:in_app_purchase/billing_client_wrappers.dart'; +import 'package:in_app_purchase/src/billing_client_wrappers/enum_converters.dart'; + +void main() { + group('BillingResponse', () { + test('serviceTimeout', () { + final BillingResponse parsed = BillingResponse.serviceTimeout; + final BillingResponse expected = BillingResponseConverter().fromJson(-3); + + expect(parsed, equals(expected)); + }); + + test('featureNotSupported', () { + final BillingResponse parsed = BillingResponse.featureNotSupported; + final BillingResponse expected = BillingResponseConverter().fromJson(-2); + + expect(parsed, equals(expected)); + }); + + test('serviceDisconnected', () { + final BillingResponse parsed = BillingResponse.serviceDisconnected; + final BillingResponse expected = BillingResponseConverter().fromJson(-1); + + expect(parsed, equals(expected)); + }); + + test('ok', () { + final BillingResponse parsed = BillingResponse.ok; + final BillingResponse expected = BillingResponseConverter().fromJson(0); + + expect(parsed, equals(expected)); + }); + + test('userCanceled', () { + final BillingResponse parsed = BillingResponse.userCanceled; + final BillingResponse expected = BillingResponseConverter().fromJson(1); + + expect(parsed, equals(expected)); + }); + + test('serviceUnavailable', () { + final BillingResponse parsed = BillingResponse.serviceUnavailable; + final BillingResponse expected = BillingResponseConverter().fromJson(2); + + expect(parsed, equals(expected)); + }); + + test('billingUnavailable', () { + final BillingResponse parsed = BillingResponse.billingUnavailable; + final BillingResponse expected = BillingResponseConverter().fromJson(3); + + expect(parsed, equals(expected)); + }); + + test('itemUnavailable', () { + final BillingResponse parsed = BillingResponse.itemUnavailable; + final BillingResponse expected = BillingResponseConverter().fromJson(4); + + expect(parsed, equals(expected)); + }); + + test('developerError', () { + final BillingResponse parsed = BillingResponse.developerError; + final BillingResponse expected = BillingResponseConverter().fromJson(5); + + expect(parsed, equals(expected)); + }); + + test('error', () { + final BillingResponse parsed = BillingResponse.error; + final BillingResponse expected = BillingResponseConverter().fromJson(6); + + expect(parsed, equals(expected)); + }); + + test('itemAlreadyOwned', () { + final BillingResponse parsed = BillingResponse.itemAlreadyOwned; + final BillingResponse expected = BillingResponseConverter().fromJson(7); + + expect(parsed, equals(expected)); + }); + + test('itemNotOwned', () { + final BillingResponse parsed = BillingResponse.itemNotOwned; + final BillingResponse expected = BillingResponseConverter().fromJson(8); + + expect(parsed, equals(expected)); + }); + }); +}