|
2 | 2 | // for details. All rights reserved. Use of this source code is governed by a |
3 | 3 | // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
|
| 5 | +import 'package:firebase_core/firebase_core.dart'; |
| 6 | +import 'package:firebase_database/firebase_database.dart'; |
5 | 7 | import 'package:flutter/foundation.dart'; |
6 | 8 | import 'package:flutter_test/flutter_test.dart'; |
| 9 | +import 'package:tests/firebase_options.dart'; |
7 | 10 |
|
8 | 11 | import 'firebase_database_e2e_test.dart'; |
9 | 12 |
|
@@ -37,5 +40,31 @@ void setupConfigurationTests() { |
37 | 40 | test('setLoggingEnabled to false', () { |
38 | 41 | database.setLoggingEnabled(false); |
39 | 42 | }); |
| 43 | + |
| 44 | + test( |
| 45 | + 'setPersistenceEnabled can be followed immediately by goOnline', |
| 46 | + () async { |
| 47 | + for (var i = 0; i < 5; i++) { |
| 48 | + final app = await Firebase.initializeApp( |
| 49 | + name: |
| 50 | + 'firebase-database-persistence-${DateTime.now().microsecondsSinceEpoch}-$i', |
| 51 | + options: DefaultFirebaseOptions.currentPlatform, |
| 52 | + ); |
| 53 | + addTearDown(app.delete); |
| 54 | + |
| 55 | + final database = FirebaseDatabase.instanceFor(app: app); |
| 56 | + |
| 57 | + database.setPersistenceEnabled(true); |
| 58 | + await database.goOnline(); |
| 59 | + |
| 60 | + await database.ref('persistence-enabled-regression').keepSynced(true); |
| 61 | + await database |
| 62 | + .ref('persistence-enabled-regression') |
| 63 | + .keepSynced(false); |
| 64 | + await database.goOffline(); |
| 65 | + } |
| 66 | + }, |
| 67 | + skip: kIsWeb || defaultTargetPlatform != TargetPlatform.android, |
| 68 | + ); |
40 | 69 | }); |
41 | 70 | } |
0 commit comments