+++ /dev/null
-using System;
-using System.Threading.Tasks;
-using BluetoothNetworkUtils;
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using Tizen.System;
-using Xamarin.Forms;
-
-namespace Tizen.Network.Bluetooth.Tests
-{
- [TestFixture]
- [Description("BluetoothAvrcpControl Tests")]
- public class BluetoothAvrcpControlTests
- {
- private BluetoothAvrcpControl _avrcpControlProfile = null;
- private static bool _isBluetoothAudioControlSupported = false;
- private static bool _isPositionPropertyReadPassed = false;
- private static bool _isPlayStatePropertyReadPassed = false;
- private static bool _isTrackDataPropertyReadPassed = false;
- private static bool _isIsConnectedPropertyReadPassed = false;
- private static bool _isRemoteAddressPropertyReadPassed = false;
-
- [SetUp]
- public void Init()
- {
- LogUtils.Write(LogUtils.DEBUG, LogUtils.INFO, "Preconditions for each TEST");
- Information.TryGetValue("http://tizen.org/feature/network.bluetooth.audio.controller", out _isBluetoothAudioControlSupported);
- }
-
- [TearDown]
- public void Destroy()
- {
- LogUtils.Write(LogUtils.DEBUG, LogUtils.INFO, "Postconditions for each TEST");
- }
-
- [Test]
- [Category("P1")]
- [Description("Listen control connection state changed event")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.ConnectionStateChanged E")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "EVL")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task ConnectionStateChanged_CHECK_EVENT()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("ConnectionStateChanged_CHECK_EVENT");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- EventHandler<AvrcpControlConnectionChangedEventArgs> ControlConnectionChanged = null;
-
- ControlConnectionChanged = (sender, e) => {
- Assert.IsInstanceOf<bool>(e.IsConnected, "IsConnected value is not of type bool");
- Assert.AreEqual(e.IsConnected, true, "IsConnected should be true");
- _isIsConnectedPropertyReadPassed = true;
- Assert.IsInstanceOf<string>(e.RemoteAddress, "RemoteAddress value is not of type string");
- Assert.AreNotEqual(e.RemoteAddress, "", "RemoteAddress is invalid");
- _isRemoteAddressPropertyReadPassed = true;
- BluetoothHelper.DisplayPassLabel("ConnectionStateChanged_CHECK_EVENT");
- };
-
- _avrcpControlProfile.ConnectionStateChanged += ControlConnectionChanged;
- await _avrcpControlProfile.ConnectAsync();
- await ManualTest.WaitForConfirm();
- _avrcpControlProfile.ConnectionStateChanged -= ControlConnectionChanged;
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Listen control connection state changed event")]
- [Property("SPEC", "Tizen.Network.Bluetooth.AvrcpControlConnectionChangedEventArgs.IsConnected A")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "PRO")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task IsConnected_PROPERTY_READ_ONLY()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("IsConnected_PROPERTY_READ_ONLY");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_isIsConnectedPropertyReadPassed == true)
- {
- BluetoothHelper.DisplayPassLabel("IsConnected_PROPERTY_READ_ONLY");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- EventHandler<AvrcpControlConnectionChangedEventArgs> ControlConnectionChanged = null;
-
- ControlConnectionChanged = (sender, e) => {
- Assert.IsInstanceOf<bool>(e.IsConnected, "IsConnected value is not of type bool");
- Assert.AreEqual(e.IsConnected, true, "IsConnected should be true");
- BluetoothHelper.DisplayPassLabel("IsConnected_PROPERTY_READ_ONLY");
- };
-
- _avrcpControlProfile.ConnectionStateChanged += ControlConnectionChanged;
- await _avrcpControlProfile.ConnectAsync();
- await ManualTest.WaitForConfirm();
- _avrcpControlProfile.ConnectionStateChanged -= ControlConnectionChanged;
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Listen control connection state changed event")]
- [Property("SPEC", "Tizen.Network.Bluetooth.AvrcpControlConnectionChangedEventArgs.RemoteAddress A")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "PRO")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task RemoteAddress_PROPERTY_READ_ONLY()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("RemoteAddress_PROPERTY_READ_ONLY");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_isRemoteAddressPropertyReadPassed == true)
- {
- BluetoothHelper.DisplayPassLabel("RemoteAddress_PROPERTY_READ_ONLY");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- EventHandler<AvrcpControlConnectionChangedEventArgs> ControlConnectionChanged = null;
-
- ControlConnectionChanged = (sender, e) => {
- Assert.IsInstanceOf<string>(e.RemoteAddress, "RemoteAddress value is not of type string");
- Assert.AreNotEqual(e.RemoteAddress, "", "RemoteAddress is invalid");
- BluetoothHelper.DisplayPassLabel("RemoteAddress_PROPERTY_READ_ONLY");
- };
-
- _avrcpControlProfile.ConnectionStateChanged += ControlConnectionChanged;
- await _avrcpControlProfile.ConnectAsync();
- await ManualTest.WaitForConfirm();
- _avrcpControlProfile.ConnectionStateChanged -= ControlConnectionChanged;
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Listen Play Position Changed")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.PositionChanged E")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "EVL")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT headset.")]
- [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
- [Step(1, "Tap the Run button")]
- [Step(2, "Change play position of a track by dragging seek bar on the target")]
- [Postcondition(1, "NA")]
- public async Task PositionChanged_CHECK_EVENT()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("PositionChanged_CHECK_EVENT");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- EventHandler<PositionChangedEventArgs> PositionChanged = null;
-
- PositionChanged = (sender, e) =>
- {
- Assert.IsInstanceOf<uint>(e.Position, "Position value is not of type uint");
- _isPositionPropertyReadPassed = true;
- BluetoothHelper.DisplayPassLabel("PositionChanged_CHECK_EVENT");
- };
-
- _avrcpControlProfile.PositionChanged += PositionChanged;
- await _avrcpControlProfile.ConnectAsync();
- await ManualTest.WaitForConfirm();
- _avrcpControlProfile.PositionChanged -= PositionChanged;
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Listen Play Position Changed")]
- [Property("SPEC", "Tizen.Network.Bluetooth.PositionChangedEventArgs.Position A")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "PRO")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT headset.")]
- [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
- [Step(1, "Tap the Run button")]
- [Step(2, "Change play position of a track by dragging seek bar on the target")]
- [Postcondition(1, "NA")]
- public async Task Position_PROPERTY_READ_ONLY()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("Position_PROPERTY_READ_ONLY");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_isPositionPropertyReadPassed == true)
- {
- BluetoothHelper.DisplayPassLabel("Position_PROPERTY_READ_ONLY");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- EventHandler<PositionChangedEventArgs> PositionChanged = null;
-
- PositionChanged = (sender, e) =>
- {
- Assert.IsInstanceOf<uint>(e.Position, "Position value is not of type uint");
- BluetoothHelper.DisplayPassLabel("Position_PROPERTY_READ_ONLY");
- };
-
- _avrcpControlProfile.PositionChanged += PositionChanged;
- await _avrcpControlProfile.ConnectAsync();
- await ManualTest.WaitForConfirm();
- _avrcpControlProfile.PositionChanged -= PositionChanged;
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Listen PlayState changed")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.PlayStateChanged E")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "EVL")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT headset.")]
- [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
- [Step(1, "Tap the Run button")]
- [Step(2, "Play/pause a track on the target")]
- [Postcondition(1, "NA")]
- public async Task PlayStateChanged_CHECK_EVENT()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("PlayStateChanged_CHECK_EVENT");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- EventHandler<PlayStateChangedEventArgs> PlayStateChanged = null;
-
- PlayStateChanged = (sender, e) =>
- {
- Assert.IsInstanceOf<PlayerState>(e.PlayState, "PlayState value is not of type PlayerState");
- _isPlayStatePropertyReadPassed = true;
- BluetoothHelper.DisplayPassLabel("PlayStateChanged_CHECK_EVENT");
- };
-
- _avrcpControlProfile.PlayStateChanged += PlayStateChanged;
- await _avrcpControlProfile.ConnectAsync();
- await ManualTest.WaitForConfirm();
- _avrcpControlProfile.PlayStateChanged -= PlayStateChanged;
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Test Mode: Check if state has proper value")]
- [Property("SPEC", "Tizen.Network.Bluetooth.PlayStateChangedEventArgs.PlayState A")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "PRO")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT headset.")]
- [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
- [Step(1, "Tap the Run button")]
- [Step(2, "Play/pause a track on the target")]
- [Postcondition(1, "NA")]
- public async Task PlayState_PROPERTY_READ_ONLY()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("PlayState_PROPERTY_READ_ONLY");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_isPlayStatePropertyReadPassed == true)
- {
- BluetoothHelper.DisplayPassLabel("PlayState_PROPERTY_READ_ONLY");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- EventHandler<PlayStateChangedEventArgs> PlayStateChanged = null;
-
- PlayStateChanged = (sender, e) =>
- {
- Assert.IsInstanceOf<PlayerState>(e.PlayState, "PlayState value is not of type PlayerState");
- BluetoothHelper.DisplayPassLabel("PlayState_PROPERTY_READ_ONLY");
- };
-
- _avrcpControlProfile.PlayStateChanged += PlayStateChanged;
- await _avrcpControlProfile.ConnectAsync();
- await ManualTest.WaitForConfirm();
- _avrcpControlProfile.PlayStateChanged -= PlayStateChanged;
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Listen Track Info changed")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.TrackInfoChanged E")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "EVL")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT headset.")]
- [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
- [Step(1, "Tap the Run button")]
- [Step(2, "Change track on the target")]
- [Postcondition(1, "NA")]
- public async Task TrackInfoChanged_CHECK_EVENT()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("TrackInfoChanged_CHECK_EVENT");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- EventHandler<TrackInfoChangedEventArgs> TrackInfoChanged = null;
-
- TrackInfoChanged = (sender, e) =>
- {
- Assert.IsInstanceOf<Track>(e.TrackData, "TrackData value is not of type Track");
- _isTrackDataPropertyReadPassed = true;
- BluetoothHelper.DisplayPassLabel("TrackInfoChanged_CHECK_EVENT");
- };
-
- _avrcpControlProfile.TrackInfoChanged += TrackInfoChanged;
- await _avrcpControlProfile.ConnectAsync();
- await ManualTest.WaitForConfirm();
- _avrcpControlProfile.TrackInfoChanged -= TrackInfoChanged;
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Listen Track Info changed")]
- [Property("SPEC", "Tizen.Network.Bluetooth.TrackInfoChangedEventArgs.TrackData A")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "PRO")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT headset.")]
- [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
- [Step(1, "Tap the Run button")]
- [Step(2, "Change track on the target")]
- [Postcondition(1, "NA")]
- public async Task TrackData_PROPERTY_READ_ONLY()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("TrackData_PROPERTY_READ_ONLY");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_isTrackDataPropertyReadPassed == true)
- {
- BluetoothHelper.DisplayPassLabel("TrackData_PROPERTY_READ_ONLY");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- EventHandler<TrackInfoChangedEventArgs> TrackInfoChanged = null;
-
- TrackInfoChanged = (sender, e) =>
- {
- Assert.IsInstanceOf<Track>(e.TrackData, "TrackData value is not of type Track");
- BluetoothHelper.DisplayPassLabel("TrackData_PROPERTY_READ_ONLY");
- };
-
- _avrcpControlProfile.TrackInfoChanged += TrackInfoChanged;
- await _avrcpControlProfile.ConnectAsync();
- await ManualTest.WaitForConfirm();
- _avrcpControlProfile.TrackInfoChanged -= TrackInfoChanged;
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Connect AVRCP Control")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.ConnectAsync M")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "MR")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task ConnectAsync_AVRCP_CONTROL_CONNECTION_TEST()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("ConnectAsync_AVRCP_CONTROL_CONNECTION_TEST");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- EventHandler<AvrcpControlConnectionChangedEventArgs> ControlConnectionChanged = null;
-
- ControlConnectionChanged = (sender, e) => {
- BluetoothHelper.DisplayPassLabel("ConnectAsync_AVRCP_CONTROL_CONNECTION_TEST");
- };
- _avrcpControlProfile.ConnectionStateChanged += ControlConnectionChanged;
-
- await _avrcpControlProfile.ConnectAsync();
- await ManualTest.WaitForConfirm();
- _avrcpControlProfile.ConnectionStateChanged -= ControlConnectionChanged;
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Disconnect AVRCP Control")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.DisconnectAsync M")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "MR")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task DisconnectAsync_AVRCP_CONTROL_DISCONNECTION_TEST()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("DisconnectAsync_AVRCP_CONTROL_DISCONNECTION_TEST");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- EventHandler<AvrcpControlConnectionChangedEventArgs> ControlConnectionChanged = null;
- ControlConnectionChanged = (sender, e) => {
- if (e.IsConnected == false)
- {
- BluetoothHelper.DisplayPassLabel("DisconnectAsync_AVRCP_CONTROL_DISCONNECTION_TEST");
- }
- };
- _avrcpControlProfile.ConnectionStateChanged += ControlConnectionChanged;
-
- await _avrcpControlProfile.ConnectAsync();
- await Task.Delay(3000);
- await _avrcpControlProfile.DisconnectAsync();
- await ManualTest.WaitForConfirm();
- _avrcpControlProfile.ConnectionStateChanged -= ControlConnectionChanged;
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Get Play Status")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.GetPlayStatus M")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "MR")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task GetPlayStatus_RETURN_VALUE()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("GetPlayStatus_READ_VALUE");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- await _avrcpControlProfile.ConnectAsync();
- PlayerState state = _avrcpControlProfile.GetPlayStatus();
- bool result = Enum.IsDefined(typeof(PlayerState), state);
- Assert.True(result, "State value is not defined in enum");
- Assert.IsInstanceOf<PlayerState>(state, "State value is not of type PlayerState");
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Get Play Progress Position")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.GetPosition M")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "MR")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task GetPosition_RETURN_VALUE()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("GetPosition_READ_VALUE");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- await _avrcpControlProfile.ConnectAsync();
- uint state = _avrcpControlProfile.GetPosition();
- Assert.IsInstanceOf<uint>(state, "State value is not of type uint");
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Check whether EqualizerState is readable and writable")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.EqualizerState A")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "PRW")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task EqualizerState_READ_WRITE()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("EqualizerState_READ_VALUE");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- await _avrcpControlProfile.ConnectAsync();
- _avrcpControlProfile.EqualizerState = EqualizerState.On;
- EqualizerState state = _avrcpControlProfile.EqualizerState;
- Assert.IsInstanceOf<EqualizerState>(state, "State value is not of type EqualizerState");
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Check whether ShuffleMode is readable and writable")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.ShuffleMode A")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "PRW")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task ShuffleMode_READ_WRITE()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("ShuffleMode_READ_VALUE");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- await _avrcpControlProfile.ConnectAsync();
- _avrcpControlProfile.ShuffleMode = ShuffleMode.AllTrack;
- ShuffleMode state = _avrcpControlProfile.ShuffleMode;
- Assert.IsInstanceOf<ShuffleMode>(state, "Mode value is not of type ShuffleMode");
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Check whether ScanMode is readable and writable")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.ScanMode A")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "PRW")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task ScanMode_READ_WRITE()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("ScanMode_READ_VALUE");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- await _avrcpControlProfile.ConnectAsync();
- _avrcpControlProfile.ScanMode = ScanMode.AllTrack;
- ScanMode state = _avrcpControlProfile.ScanMode;
- Assert.IsInstanceOf<ScanMode>(state, "Mode value is not of type ScanMode");
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Check whether RepeatMode is readable and writable")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.RepeatMode A")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "PRW")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task RepeatMode_READ_WRITE()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("RepeatMode_READ_VALUE");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- await _avrcpControlProfile.ConnectAsync();
- _avrcpControlProfile.RepeatMode = RepeatMode.AllTrack;
- RepeatMode state = _avrcpControlProfile.RepeatMode;
- Assert.IsInstanceOf<RepeatMode>(state, "Mode value is not of type RepeatMode");
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Get Track Info")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.GetTrackInfo M")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "MR")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task GetTrackInfo_RETURN_VALUE()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("GetTrackInfo_READ_VALUE");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
- }
-
- await _avrcpControlProfile.ConnectAsync();
- Track track = _avrcpControlProfile.GetTrackInfo();
- Assert.IsInstanceOf<Track>(track, "track value is not of type Track");
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
-
- [Test]
- [Category("P1")]
- [Description("Send a specific player state command to the target")]
- [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.SendPlayerCommand M")]
- [Property("SPEC_URL", "-")]
- [Property("CRITERIA", "MR")]
- [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
- [Precondition(1, "Turn on the bluetooth")]
- [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
- [Step(1, "Tap the Run button")]
- [Postcondition(1, "NA")]
- public async Task SendPlayerCommand_RETURN_VALUE()
- {
- try
- {
- /* We can't occupy the precondition, if AvrcpControl feature is not supported in Manual TC */
- if (_isBluetoothAudioControlSupported == false)
- {
- BluetoothHelper.DisplayLabel("SendPlayerCommand_WRITE_VALUE");
- await ManualTest.WaitForConfirm();
- return;
- }
-
- if (_avrcpControlProfile == null)
- {
- _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
- Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: avrcpavrcpControlProfile Profile should not be null");
- }
-
- await _avrcpControlProfile.ConnectAsync();
- _avrcpControlProfile.SendPlayerCommand(PlayerCommand.Next);
- //If there is no exception when method is called, the test is considered PASSED.
- }
- catch (Exception ex)
- {
- Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
- }
- finally
- {
- if (_avrcpControlProfile != null)
- {
- await _avrcpControlProfile.DisconnectAsync();
- }
- }
- }
- }
-}
--- /dev/null
+using System;
+using System.Threading.Tasks;
+using BluetoothNetworkUtils;
+using NUnit.Framework;
+using NUnit.Framework.TUnit;
+using Tizen.System;
+using Xamarin.Forms;
+
+namespace Tizen.Network.Bluetooth.Tests
+{
+ [TestFixture]
+ [Description("BluetoothAvrcpControl Tests")]
+ public class BluetoothAvrcpControlTests
+ {
+ private BluetoothAvrcpControl _avrcpControlProfile = null;
+ private static bool _isBluetoothAudioControlSupported = false;
+
+ /* PASS flag Variaibles for TCs */
+ static bool pass_ConnectionStateChanged_CHECK_EVENT = false;
+ static bool pass_IsConnected_PROPERTY_READ_ONLY = false;
+ static bool pass_RemoteAddress_PROPERTY_READ_ONLY = false;
+ static bool pass_PositionChanged_CHECK_EVENT = false;
+ static bool pass_Position_PROPERTY_READ_ONLY = false;
+ static bool pass_PlayStateChanged_CHECK_EVENT = false;
+ static bool pass_PlayState_PROPERTY_READ_ONLY = false;
+ static bool pass_TrackInfoChanged_CHECK_EVENT = false;
+ static bool pass_TrackData_PROPERTY_READ_ONLY = false;
+ static bool pass_ConnectAsync_AVRCP_CONTROL_CONNECTION_TEST = false;
+ static bool pass_DisconnectAsync_AVRCP_CONTROL_DISCONNECTION_TEST = false;
+ static bool pass_GetPlayStatus_RETURN_VALUE = false;
+ static bool pass_GetPosition_RETURN_VALUE = false;
+ static bool pass_EqualizerState_READ_WRITE = false;
+ static bool pass_ShuffleMode_READ_WRITE = false;
+ static bool pass_ScanMode_READ_WRITE = false;
+ static bool pass_RepeatMode_READ_WRITE = false;
+ static bool pass_GetTrackInfo_RETURN_VALUE = false;
+ static bool pass_SendPlayerCommand_RETURN_VALUE = false;
+
+ [SetUp]
+ public void Init()
+ {
+ LogUtils.Write(LogUtils.DEBUG, LogUtils.INFO, "Preconditions for each TEST");
+ Information.TryGetValue("http://tizen.org/feature/network.bluetooth.audio.controller", out _isBluetoothAudioControlSupported);
+ }
+
+ [TearDown]
+ public void Destroy()
+ {
+ LogUtils.Write(LogUtils.DEBUG, LogUtils.INFO, "Postconditions for each TEST");
+ }
+
+ public async Task AvrcpControlCombine_TEST()
+ {
+ try
+ {
+ if (_avrcpControlProfile == null)
+ {
+ _avrcpControlProfile = await BluetoothSetup.GetBluetoothAvrcpControlProfileUtil();
+ Assert.IsNotNull(_avrcpControlProfile, "Precondtion failed: _avrcpControlProfile should not be null");
+ }
+
+ /* PASS condition for ConnectAsync_AVRCP_CONTROL_CONNECTION_TEST */
+ await _avrcpControlProfile.ConnectAsync();
+ await Task.Delay(3000);
+ pass_ConnectAsync_AVRCP_CONTROL_CONNECTION_TEST = true;
+
+ /* PASS condition for DisconnectAsync_AVRCP_CONTROL_DISCONNECTION_TEST */
+ await _avrcpControlProfile.DisconnectAsync();
+ await Task.Delay(2000);
+ pass_DisconnectAsync_AVRCP_CONTROL_DISCONNECTION_TEST = true;
+
+ EventHandler<AvrcpControlConnectionChangedEventArgs> ControlConnectionChanged = null;
+
+ ControlConnectionChanged = (sender, e) => {
+ /* PASS condition for ConnectionStateChanged_CHECK_EVENT */
+ pass_ConnectionStateChanged_CHECK_EVENT = true;
+
+ /* PASS condition for IsConnected_PROPERTY_READ_ONLY */
+ Assert.IsInstanceOf<bool>(e.IsConnected, "IsConnected value is not of type bool");
+ Assert.AreEqual(e.IsConnected, true, "IsConnected should be true");
+ pass_IsConnected_PROPERTY_READ_ONLY = true;
+
+ /* PASS condition for RemoteAddress_PROPERTY_READ_ONLY */
+ Assert.IsInstanceOf<string>(e.RemoteAddress, "RemoteAddress value is not of type string");
+ Assert.AreNotEqual(e.RemoteAddress, "", "RemoteAddress is invalid");
+ pass_RemoteAddress_PROPERTY_READ_ONLY = true;
+
+ BluetoothHelper.DisplayCustomLabel("AvrcpControl is connected.\n Please type AVRCP command on sdb shell");
+
+ _avrcpControlProfile.ConnectionStateChanged -= ControlConnectionChanged;
+ };
+
+ _avrcpControlProfile.ConnectionStateChanged += ControlConnectionChanged;
+ await _avrcpControlProfile.ConnectAsync();
+ await Task.Delay(3000);
+
+ /* PASS condition for GetPlayStatus_RETURN_VALUE */
+ PlayerState play_state = _avrcpControlProfile.GetPlayStatus();
+ bool result = Enum.IsDefined(typeof(PlayerState), play_state);
+ Assert.True(result, "State value is not defined in enum");
+ Assert.IsInstanceOf<PlayerState>(play_state, "State value is not of type PlayerState");
+ pass_GetPlayStatus_RETURN_VALUE = true;
+
+ /* PASS condition for GetPosition_RETURN_VALUE */
+ uint position = _avrcpControlProfile.GetPosition();
+ Assert.IsInstanceOf<uint>(position, "position value is not of type uint");
+ pass_GetPosition_RETURN_VALUE = true;
+
+ /* PASS condition for EqualizerState_READ_WRITE */
+ _avrcpControlProfile.EqualizerState = EqualizerState.On;
+ EqualizerState equalizer_state = _avrcpControlProfile.EqualizerState;
+ Assert.IsInstanceOf<EqualizerState>(equalizer_state, "State value is not of type EqualizerState");
+ pass_EqualizerState_READ_WRITE = true;
+
+ /* PASS condition for ShuffleMode_READ_WRITE */
+ _avrcpControlProfile.ShuffleMode = ShuffleMode.AllTrack;
+ ShuffleMode shuffle_mode = _avrcpControlProfile.ShuffleMode;
+ Assert.IsInstanceOf<ShuffleMode>(shuffle_mode, "Mode value is not of type ShuffleMode");
+ pass_ShuffleMode_READ_WRITE = true;
+
+ /* PASS condition for ScanMode_READ_WRITE */
+ _avrcpControlProfile.ScanMode = ScanMode.AllTrack;
+ ScanMode scan_mode = _avrcpControlProfile.ScanMode;
+ Assert.IsInstanceOf<ScanMode>(scan_mode, "Mode value is not of type ScanMode");
+ pass_ScanMode_READ_WRITE = true;
+
+ /* PASS condition for RepeatMode_READ_WRITE */
+ _avrcpControlProfile.RepeatMode = RepeatMode.AllTrack;
+ RepeatMode repeat_state = _avrcpControlProfile.RepeatMode;
+ Assert.IsInstanceOf<RepeatMode>(repeat_state, "Mode value is not of type RepeatMode");
+ pass_RepeatMode_READ_WRITE = true;
+
+ /* PASS condition for GetTrackInfo_RETURN_VALUE */
+ Track track = _avrcpControlProfile.GetTrackInfo();
+ Assert.IsInstanceOf<Track>(track, "track value is not of type Track");
+ pass_GetTrackInfo_RETURN_VALUE = true;
+
+ /* PASS condition for SendPlayerCommand_RETURN_VALUE */
+ _avrcpControlProfile.SendPlayerCommand(PlayerCommand.Next);
+ pass_SendPlayerCommand_RETURN_VALUE = true;
+
+ /* PASS condition for PositionChanged_CHECK_EVENT */
+ EventHandler<PositionChangedEventArgs> PositionChanged = null;
+
+ PositionChanged = (sender, e) =>
+ {
+ pass_PositionChanged_CHECK_EVENT = true;
+
+ /* PASS condition for Position_PROPERTY_READ_ONLY */
+ Assert.IsInstanceOf<uint>(e.Position, "Position value is not of type uint");
+ pass_Position_PROPERTY_READ_ONLY = true;
+
+ if (pass_PositionChanged_CHECK_EVENT == true &&
+ pass_PlayStateChanged_CHECK_EVENT == true &&
+ pass_TrackInfoChanged_CHECK_EVENT == true)
+ BluetoothHelper.DisplayPassLabel("AvrcpControlCombine_TEST");
+
+ _avrcpControlProfile.PositionChanged -= PositionChanged;
+ };
+
+ _avrcpControlProfile.PositionChanged += PositionChanged;
+
+ /* PASS condition for PlayStateChanged_CHECK_EVENT */
+ EventHandler<PlayStateChangedEventArgs> PlayStateChanged = null;
+
+ PlayStateChanged = (sender, e) =>
+ {
+ pass_PlayStateChanged_CHECK_EVENT = true;
+
+ /* PASS condition for PlayState_PROPERTY_READ_ONLY */
+ Assert.IsInstanceOf<PlayerState>(e.PlayState, "PlayState value is not of type PlayerState");
+ pass_PlayState_PROPERTY_READ_ONLY = true;
+
+ if (pass_PositionChanged_CHECK_EVENT == true &&
+ pass_PlayStateChanged_CHECK_EVENT == true &&
+ pass_TrackInfoChanged_CHECK_EVENT == true)
+ BluetoothHelper.DisplayPassLabel("AvrcpControlCombine_TEST");
+
+ _avrcpControlProfile.PlayStateChanged -= PlayStateChanged;
+ };
+
+ _avrcpControlProfile.PlayStateChanged += PlayStateChanged;
+
+ /* PASS condition for TrackInfoChanged_CHECK_EVENT */
+ EventHandler<TrackInfoChangedEventArgs> TrackInfoChanged = null;
+
+ TrackInfoChanged = (sender, e) =>
+ {
+ pass_TrackInfoChanged_CHECK_EVENT = true;
+
+ /* PASS condition for TrackData_PROPERTY_READ_ONLY */
+ Assert.IsInstanceOf<Track>(e.TrackData, "TrackData value is not of type Track");
+ pass_TrackData_PROPERTY_READ_ONLY = true;
+
+ if (pass_PositionChanged_CHECK_EVENT == true &&
+ pass_PlayStateChanged_CHECK_EVENT == true &&
+ pass_TrackInfoChanged_CHECK_EVENT == true)
+ BluetoothHelper.DisplayPassLabel("AvrcpControlCombine_TEST");
+
+ _avrcpControlProfile.TrackInfoChanged -= TrackInfoChanged;
+ };
+
+ _avrcpControlProfile.TrackInfoChanged += TrackInfoChanged;
+
+ await ManualTest.WaitForConfirm();
+ }
+ catch (Exception ex)
+ {
+ Assert.True(false, "Exception occurs. Msg : " + ex.ToString());
+ }
+ finally
+ {
+ if (_avrcpControlProfile != null)
+ {
+ await _avrcpControlProfile.DisconnectAsync();
+ }
+ }
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Listen control connection state changed event")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.ConnectionStateChanged E")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "EVL")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task ConnectionStateChanged_CHECK_EVENT()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("ConnectionStateChanged_CHECK_EVENT");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_ConnectionStateChanged_CHECK_EVENT == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_ConnectionStateChanged_CHECK_EVENT, "[TestCase][ConnectionStateChanged_CHECK_EVENT] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Listen control connection state changed event")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.AvrcpControlConnectionChangedEventArgs.IsConnected A")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "PRO")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task IsConnected_PROPERTY_READ_ONLY()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("IsConnected_PROPERTY_READ_ONLY");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_IsConnected_PROPERTY_READ_ONLY == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_IsConnected_PROPERTY_READ_ONLY, "[TestCase][IsConnected_PROPERTY_READ_ONLY] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Listen control connection state changed event")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.AvrcpControlConnectionChangedEventArgs.RemoteAddress A")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "PRO")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task RemoteAddress_PROPERTY_READ_ONLY()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("IsConnected_PROPERTY_READ_ONLY");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_IsConnected_PROPERTY_READ_ONLY == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_IsConnected_PROPERTY_READ_ONLY, "[TestCase][IsConnected_PROPERTY_READ_ONLY] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Listen Play Position Changed")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.PositionChanged E")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "EVL")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT headset.")]
+ [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
+ [Step(1, "Tap the Run button")]
+ [Step(2, "Change play position of a track by dragging seek bar on the target")]
+ [Postcondition(1, "NA")]
+ public async Task PositionChanged_CHECK_EVENT()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("PositionChanged_CHECK_EVENT");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_PositionChanged_CHECK_EVENT == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_PositionChanged_CHECK_EVENT, "[TestCase][PositionChanged_CHECK_EVENT] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Listen Play Position Changed")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.PositionChangedEventArgs.Position A")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "PRO")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT headset.")]
+ [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
+ [Step(1, "Tap the Run button")]
+ [Step(2, "Change play position of a track by dragging seek bar on the target")]
+ [Postcondition(1, "NA")]
+ public async Task Position_PROPERTY_READ_ONLY()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("Position_PROPERTY_READ_ONLY");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_Position_PROPERTY_READ_ONLY == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_Position_PROPERTY_READ_ONLY, "[TestCase][Position_PROPERTY_READ_ONLY] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Listen PlayState changed")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.PlayStateChanged E")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "EVL")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT headset.")]
+ [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
+ [Step(1, "Tap the Run button")]
+ [Step(2, "Play/pause a track on the target")]
+ [Postcondition(1, "NA")]
+ public async Task PlayStateChanged_CHECK_EVENT()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("PlayStateChanged_CHECK_EVENT");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_PlayStateChanged_CHECK_EVENT == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_PlayStateChanged_CHECK_EVENT, "[TestCase][PlayStateChanged_CHECK_EVENT] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Test Mode: Check if state has proper value")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.PlayStateChangedEventArgs.PlayState A")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "PRO")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT headset.")]
+ [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
+ [Step(1, "Tap the Run button")]
+ [Step(2, "Play/pause a track on the target")]
+ [Postcondition(1, "NA")]
+ public async Task PlayState_PROPERTY_READ_ONLY()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("PlayState_PROPERTY_READ_ONLY");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_PlayState_PROPERTY_READ_ONLY == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_PlayState_PROPERTY_READ_ONLY, "[TestCase][PlayState_PROPERTY_READ_ONLY] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Listen Track Info changed")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.TrackInfoChanged E")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "EVL")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT headset.")]
+ [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
+ [Step(1, "Tap the Run button")]
+ [Step(2, "Change track on the target")]
+ [Postcondition(1, "NA")]
+ public async Task TrackInfoChanged_CHECK_EVENT()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("TrackInfoChanged_CHECK_EVENT");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_TrackInfoChanged_CHECK_EVENT == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_TrackInfoChanged_CHECK_EVENT, "[TestCase][TrackInfoChanged_CHECK_EVENT] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Listen Track Info changed")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.TrackInfoChangedEventArgs.TrackData A")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "PRO")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT headset.")]
+ [Precondition(3, "Sdb is connected as root with the target. \n>sdb root on")]
+ [Step(1, "Tap the Run button")]
+ [Step(2, "Change track on the target")]
+ [Postcondition(1, "NA")]
+ public async Task TrackData_PROPERTY_READ_ONLY()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("TrackData_PROPERTY_READ_ONLY");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_TrackData_PROPERTY_READ_ONLY == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_TrackData_PROPERTY_READ_ONLY, "[TestCase][TrackData_PROPERTY_READ_ONLY] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Connect AVRCP Control")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.ConnectAsync M")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "MR")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task ConnectAsync_AVRCP_CONTROL_CONNECTION_TEST()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("ConnectAsync_AVRCP_CONTROL_CONNECTION_TEST");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_ConnectAsync_AVRCP_CONTROL_CONNECTION_TEST == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_ConnectAsync_AVRCP_CONTROL_CONNECTION_TEST, "[TestCase][ConnectAsync_AVRCP_CONTROL_CONNECTION_TEST] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Disconnect AVRCP Control")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.DisconnectAsync M")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "MR")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task DisconnectAsync_AVRCP_CONTROL_DISCONNECTION_TEST()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("DisconnectAsync_AVRCP_CONTROL_DISCONNECTION_TEST");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_DisconnectAsync_AVRCP_CONTROL_DISCONNECTION_TEST == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_DisconnectAsync_AVRCP_CONTROL_DISCONNECTION_TEST, "[TestCase][DisconnectAsync_AVRCP_CONTROL_DISCONNECTION_TEST] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Get Play Status")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.GetPlayStatus M")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "MR")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task GetPlayStatus_RETURN_VALUE()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("GetPlayStatus_RETURN_VALUE");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_GetPlayStatus_RETURN_VALUE == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_GetPlayStatus_RETURN_VALUE, "[TestCase][GetPlayStatus_RETURN_VALUE] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Get Play Progress Position")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.GetPosition M")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "MR")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task GetPosition_RETURN_VALUE()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("GetPosition_RETURN_VALUE");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_GetPosition_RETURN_VALUE == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_GetPosition_RETURN_VALUE, "[TestCase][GetPosition_RETURN_VALUE] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Check whether EqualizerState is readable and writable")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.EqualizerState A")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "PRW")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task EqualizerState_READ_WRITE()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("EqualizerState_READ_WRITE");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_EqualizerState_READ_WRITE == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_EqualizerState_READ_WRITE, "[TestCase][EqualizerState_READ_WRITE] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Check whether ShuffleMode is readable and writable")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.ShuffleMode A")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "PRW")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task ShuffleMode_READ_WRITE()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("ShuffleMode_READ_WRITE");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_ShuffleMode_READ_WRITE == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_ShuffleMode_READ_WRITE, "[TestCase][ShuffleMode_READ_WRITE] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Check whether ScanMode is readable and writable")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.ScanMode A")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "PRW")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task ScanMode_READ_WRITE()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("ScanMode_READ_WRITE");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_ScanMode_READ_WRITE == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_ScanMode_READ_WRITE, "[TestCase][ScanMode_READ_WRITE] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Check whether RepeatMode is readable and writable")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.RepeatMode A")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "PRW")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task RepeatMode_READ_WRITE()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("RepeatMode_READ_WRITE");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_RepeatMode_READ_WRITE == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_RepeatMode_READ_WRITE, "[TestCase][RepeatMode_READ_WRITE] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Get Track Info")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.GetTrackInfo M")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "MR")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task GetTrackInfo_RETURN_VALUE()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("GetTrackInfo_RETURN_VALUE");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_GetTrackInfo_RETURN_VALUE == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_GetTrackInfo_RETURN_VALUE, "[TestCase][GetTrackInfo_RETURN_VALUE] Fail");
+ }
+
+ [Test]
+ [Category("P1")]
+ [Description("Send a specific player state command to the target")]
+ [Property("SPEC", "Tizen.Network.Bluetooth.BluetoothAvrcpControl.SendPlayerCommand M")]
+ [Property("SPEC_URL", "-")]
+ [Property("CRITERIA", "MR")]
+ [Property("AUTHOR", "Sudipto Bal, sudipto.bal@samsung.com")]
+ [Precondition(1, "Turn on the bluetooth")]
+ [Precondition(2, "Paired with BT target device (phone, watch, etc).")]
+ [Step(1, "Tap the Run button")]
+ [Postcondition(1, "NA")]
+ public async Task SendPlayerCommand_RETURN_VALUE()
+ {
+ /* We can't occupy the precondition, if AVRCP Control feature is not supported in Manual TC */
+ if (_isBluetoothAudioControlSupported == false)
+ {
+ BluetoothHelper.DisplayLabel("SendPlayerCommand_RETURN_VALUE");
+ await ManualTest.WaitForConfirm();
+ return;
+ }
+
+ if (pass_SendPlayerCommand_RETURN_VALUE == false)
+ await AvrcpControlCombine_TEST();
+
+ Assert.True(pass_SendPlayerCommand_RETURN_VALUE, "[TestCase][SendPlayerCommand_RETURN_VALUE] Fail");
+ }
+ }
+}