diff --git a/packages/tizen_audio_manager/CHANGELOG.md b/packages/tizen_audio_manager/CHANGELOG.md index b9b073c5b..4505f6c0a 100644 --- a/packages/tizen_audio_manager/CHANGELOG.md +++ b/packages/tizen_audio_manager/CHANGELOG.md @@ -5,6 +5,7 @@ * Update code format. * Add a 3-second delay in integration_test to support the media volume reset feature of the Tizen Volume app for hearing protection. +* Add 2 integration test cases. ## 0.1.1 diff --git a/packages/tizen_audio_manager/example/integration_test/audio_manager_test.dart b/packages/tizen_audio_manager/example/integration_test/audio_manager_test.dart index 3374aab27..2cc76d261 100644 --- a/packages/tizen_audio_manager/example/integration_test/audio_manager_test.dart +++ b/packages/tizen_audio_manager/example/integration_test/audio_manager_test.dart @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:async'; + import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:tizen_audio_manager/tizen_audio_manager.dart'; @@ -204,4 +206,44 @@ void main() { level = await AudioManager.volumeController.getLevel(AudioVolumeType.voip); expect(level, equals(0)); }); + + testWidgets('currentPlaybackType returns a valid AudioVolumeType', + (WidgetTester tester) async { + final AudioVolumeType type = + await AudioManager.volumeController.currentPlaybackType; + expect(AudioVolumeType.values, contains(type)); + }); + + testWidgets('onChanged emits VolumeChangedEvent when volume is changed', + (WidgetTester tester) async { + final int originalLevel = + await AudioManager.volumeController.getLevel(AudioVolumeType.system); + final int maxLevel = + await AudioManager.volumeController.getMaxLevel(AudioVolumeType.system); + final int targetLevel = originalLevel == maxLevel ? 0 : maxLevel; + + final Completer completer = + Completer(); + final StreamSubscription subscription = AudioManager + .volumeController.onChanged + .listen((VolumeChangedEvent event) { + if (event.type == AudioVolumeType.system && !completer.isCompleted) { + completer.complete(event); + } + }); + + try { + await AudioManager.volumeController + .setLevel(AudioVolumeType.system, targetLevel); + final VolumeChangedEvent event = + await completer.future.timeout(const Duration(seconds: 5)); + + expect(event.type, equals(AudioVolumeType.system)); + expect(event.level, equals(targetLevel)); + } finally { + await AudioManager.volumeController + .setLevel(AudioVolumeType.system, originalLevel); + await subscription.cancel(); + } + }); }