Skip to content

Commit 1bb8868

Browse files
authored
[tizen_audio_manager] Add regression integration tests (#1050)
1 parent 6755e4b commit 1bb8868

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

packages/tizen_audio_manager/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* Update code format.
66
* Add a 3-second delay in integration_test to support the media volume reset
77
feature of the Tizen Volume app for hearing protection.
8+
* Add 2 integration test cases.
89

910
## 0.1.1
1011

packages/tizen_audio_manager/example/integration_test/audio_manager_test.dart

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5+
import 'dart:async';
6+
57
import 'package:flutter_test/flutter_test.dart';
68
import 'package:integration_test/integration_test.dart';
79
import 'package:tizen_audio_manager/tizen_audio_manager.dart';
@@ -204,4 +206,44 @@ void main() {
204206
level = await AudioManager.volumeController.getLevel(AudioVolumeType.voip);
205207
expect(level, equals(0));
206208
});
209+
210+
testWidgets('currentPlaybackType returns a valid AudioVolumeType',
211+
(WidgetTester tester) async {
212+
final AudioVolumeType type =
213+
await AudioManager.volumeController.currentPlaybackType;
214+
expect(AudioVolumeType.values, contains(type));
215+
});
216+
217+
testWidgets('onChanged emits VolumeChangedEvent when volume is changed',
218+
(WidgetTester tester) async {
219+
final int originalLevel =
220+
await AudioManager.volumeController.getLevel(AudioVolumeType.system);
221+
final int maxLevel =
222+
await AudioManager.volumeController.getMaxLevel(AudioVolumeType.system);
223+
final int targetLevel = originalLevel == maxLevel ? 0 : maxLevel;
224+
225+
final Completer<VolumeChangedEvent> completer =
226+
Completer<VolumeChangedEvent>();
227+
final StreamSubscription<VolumeChangedEvent> subscription = AudioManager
228+
.volumeController.onChanged
229+
.listen((VolumeChangedEvent event) {
230+
if (event.type == AudioVolumeType.system && !completer.isCompleted) {
231+
completer.complete(event);
232+
}
233+
});
234+
235+
try {
236+
await AudioManager.volumeController
237+
.setLevel(AudioVolumeType.system, targetLevel);
238+
final VolumeChangedEvent event =
239+
await completer.future.timeout(const Duration(seconds: 5));
240+
241+
expect(event.type, equals(AudioVolumeType.system));
242+
expect(event.level, equals(targetLevel));
243+
} finally {
244+
await AudioManager.volumeController
245+
.setLevel(AudioVolumeType.system, originalLevel);
246+
await subscription.cancel();
247+
}
248+
});
207249
}

0 commit comments

Comments
 (0)