[Tizen.Multimedia.Manual][Non-ACR][Change Extention.MediaView to CustomRenderer of... 41/179341/5
authorHaesu Gwon <haesu.gwon@samsung.com>
Thu, 17 May 2018 07:29:33 +0000 (16:29 +0900)
committerHaesu Gwon <haesu.gwon@samsung.com>
Mon, 21 May 2018 05:15:50 +0000 (05:15 +0000)
Change-Id: Ie20805f121c40772114784d073a6ad3f63004655
Signed-off-by: Haesu Gwon <haesu.gwon@samsung.com>
tct-suite-vs/Tizen.Multimedia.Manual.Tests/Program.cs
tct-suite-vs/Tizen.Multimedia.Manual.Tests/Tizen.Multimedia.Manual.Tests.sln
tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/Camera/TSCamera.cs
tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/Camera/TSCameraFocusStateChangedEventArgs.cs
tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/Camera/TSFaceDetectedEventArgs.cs
tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/Camera/TSFaceDetectionData.cs
tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/Recorder/TSRecorder.cs
tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/support/CameraTestBase.cs
tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/support/VideoView.cs [new file with mode: 0644]
tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/support/VideoViewRenderer.cs [new file with mode: 0755]

index 2884158..4010ccf 100755 (executable)
@@ -17,7 +17,6 @@
 using System;
 using NUnit.Framework;
 using Xamarin.Forms;
-using Tizen.Xamarin.Forms.Extension.Renderer;
 
 namespace XamarinApplication.Tizen
 {
@@ -43,7 +42,6 @@ namespace XamarinApplication.Tizen
         {
             Console.WriteLine("TCT : Main()");
             var app = new Program();
-            TizenFormsExtension.Init();
             global::Xamarin.Forms.Platform.Tizen.Forms.Init(app);
             app.Run(args);
         }
index fa98b88..edb34f2 100755 (executable)
@@ -8,7 +8,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunit.framework", "..\nunit
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunitlite", "..\nunitlite\nunitlite.csproj", "{FDB8025A-C029-461F-895E-287B4C65939B}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tizen.Multimedia.Support.Library", "..\Tizen.Multimedia.Support.Library\Tizen.Multimedia.Support.Library.csproj", "{B42F7C98-0918-4141-8C93-4B6263931E6E}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.Multimedia.Support.Library", "..\Tizen.Multimedia.Support.Library\Tizen.Multimedia.Support.Library.csproj", "{B42F7C98-0918-4141-8C93-4B6263931E6E}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ManualTemplate", "..\Template\ManualTemplate\ManualTemplate.csproj", "{269F89A7-E648-4811-8421-844E00ACF5F0}"
 EndProject
@@ -60,18 +60,42 @@ Global
                {FDB8025A-C029-461F-895E-287B4C65939B}.Release|x64.Build.0 = Release|Any CPU
                {FDB8025A-C029-461F-895E-287B4C65939B}.Release|x86.ActiveCfg = Release|Any CPU
                {FDB8025A-C029-461F-895E-287B4C65939B}.Release|x86.Build.0 = Release|Any CPU
-               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.NUI|Any CPU.ActiveCfg = Debug|Any CPU
-               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.NUI|Any CPU.Build.0 = Debug|Any CPU
-               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Release|Any CPU.ActiveCfg = Release|Any CPU
-               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Release|Any CPU.Build.0 = Release|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Debug|x64.Build.0 = Debug|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Debug|x86.Build.0 = Debug|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Release|Any CPU.Build.0 = Release|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Release|x64.ActiveCfg = Release|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Release|x64.Build.0 = Release|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Release|x86.ActiveCfg = Release|Any CPU
+               {B42F7C98-0918-4141-8C93-4B6263931E6E}.Release|x86.Build.0 = Release|Any CPU
                {269F89A7-E648-4811-8421-844E00ACF5F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
                {269F89A7-E648-4811-8421-844E00ACF5F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
-               {269F89A7-E648-4811-8421-844E00ACF5F0}.NUI|Any CPU.ActiveCfg = Debug|Any CPU
-               {269F89A7-E648-4811-8421-844E00ACF5F0}.NUI|Any CPU.Build.0 = Debug|Any CPU
+               {269F89A7-E648-4811-8421-844E00ACF5F0}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {269F89A7-E648-4811-8421-844E00ACF5F0}.Debug|x64.Build.0 = Debug|Any CPU
+               {269F89A7-E648-4811-8421-844E00ACF5F0}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {269F89A7-E648-4811-8421-844E00ACF5F0}.Debug|x86.Build.0 = Debug|Any CPU
                {269F89A7-E648-4811-8421-844E00ACF5F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
                {269F89A7-E648-4811-8421-844E00ACF5F0}.Release|Any CPU.Build.0 = Release|Any CPU
+               {269F89A7-E648-4811-8421-844E00ACF5F0}.Release|x64.ActiveCfg = Release|Any CPU
+               {269F89A7-E648-4811-8421-844E00ACF5F0}.Release|x64.Build.0 = Release|Any CPU
+               {269F89A7-E648-4811-8421-844E00ACF5F0}.Release|x86.ActiveCfg = Release|Any CPU
+               {269F89A7-E648-4811-8421-844E00ACF5F0}.Release|x86.Build.0 = Release|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Debug|x64.Build.0 = Debug|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Debug|x86.Build.0 = Debug|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Release|Any CPU.Build.0 = Release|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Release|x64.ActiveCfg = Release|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Release|x64.Build.0 = Release|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Release|x86.ActiveCfg = Release|Any CPU
+               {D36CED01-29BD-4EB3-8903-62E0BF2A822D}.Release|x86.Build.0 = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
index ad3e97e..3e4a62b 100755 (executable)
@@ -30,14 +30,15 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.StateChanged += async (s, e) =>
+            TestCamera.StateChanged += async (s, e) =>
             {
                 await Task.Delay(200);
 
                 if (e.Current == CameraState.Preview)
                 {
                     _msgBox.Text = "Preview is started successfully and TC is passed. Please go back to previous page.";
-                    ManualTest.Confirm();
+
+                    ConfirmAndHideView();
                 }
             };
 
@@ -49,7 +50,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
             };
@@ -89,19 +90,20 @@ namespace Tizen.Multimedia.Tests
                 try
                 {
                     // Call StartPreview again to make invalid state intentionally.
-                    Camera.StartPreview();
+                    TestCamera.StartPreview();
                 }
                 catch (InvalidOperationException)
                 {
                     _msgBox.Text = "InvalidOperationException is occured correctly. Please go back to previous page.";
-                    ManualTest.Confirm();
+
+                    ConfirmAndHideView();
                     return;
                 }
 
                 Assert.Fail("InvalidOperationException is not occured and TC is failed. Please go back to previous page.");
             };
 
-            Camera.StartPreview();
+            TestCamera.StartPreview();
 
             await ManualTest.WaitForConfirm();
         }
@@ -124,12 +126,13 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.CaptureCompleted += (s, e) =>
+            TestCamera.CaptureCompleted += (s, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _msgBox.Text = "Capture is completed successfully and TC is passed. Please go back to previous page.";
-                ManualTest.Confirm();
+
+                ConfirmAndHideView();
             };
 
             /*
@@ -140,8 +143,8 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.Settings.CaptureResolution = new Size(640, 480);
-                Camera.StartPreview();
+                TestCamera.Settings.CaptureResolution = new Size(640, 480);
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -149,7 +152,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartCapture();
+                TestCamera.StartCapture();
 
                 _button2.IsEnabled = false;
             };
@@ -187,13 +190,14 @@ namespace Tizen.Multimedia.Tests
 
                 try
                 {
-                    Camera.Settings.CaptureResolution = new Size(640, 480);
-                    Camera.StartCapture();
+                    TestCamera.Settings.CaptureResolution = new Size(640, 480);
+                    TestCamera.StartCapture();
                 }
                 catch (InvalidOperationException)
                 {
                     _msgBox.Text = "InvalidOperationException is occured correctly and TC is passed. Please go back to previous page.";
-                    ManualTest.Confirm();
+
+                    ConfirmAndHideView();
                     return;
                 }
 
@@ -224,12 +228,13 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.CaptureCompleted += (s, e) =>
+            TestCamera.CaptureCompleted += (s, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _msgBox.Text = "Capture is completed successfully and TC is passed. Please go back to previous page.";
-                ManualTest.Confirm();
+
+                ConfirmAndHideView();
             };
 
             /*
@@ -241,8 +246,8 @@ namespace Tizen.Multimedia.Tests
             _button1.Clicked += (sender, e) =>
             {
                 tokenSource = new CancellationTokenSource();
-                Camera.Settings.CaptureResolution = new Size(640, 480);
-                Camera.StartPreview();
+                TestCamera.Settings.CaptureResolution = new Size(640, 480);
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -250,7 +255,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartCapture(3, 700, tokenSource.Token);
+                TestCamera.StartCapture(3, 700, tokenSource.Token);
 
                 _button2.IsEnabled = false;
             };
@@ -292,13 +297,14 @@ namespace Tizen.Multimedia.Tests
                 try
                 {
                     tokenSource = new CancellationTokenSource();
-                    Camera.Settings.CaptureResolution = new Size(640, 480);
-                    Camera.StartCapture(5, 700, tokenSource.Token);
+                    TestCamera.Settings.CaptureResolution = new Size(640, 480);
+                    TestCamera.StartCapture(5, 700, tokenSource.Token);
                 }
                 catch (InvalidOperationException)
                 {
                     _msgBox.Text = "InvalidOperationException is occured correctly and TC is passed. Please go back to previous page.";
-                    ManualTest.Confirm();
+
+                    ConfirmAndHideView();
                     return;
                 }
 
@@ -330,14 +336,14 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.ChangeDevice(CameraDevice.Front);
+            TestCamera.ChangeDevice(CameraDevice.Front);
 
-            Camera.FaceDetected += (s, e) =>
+            TestCamera.FaceDetected += (s, e) =>
             {
-                _msgBox.Text = "Face detection is started successfully and TC is passed. Please go back to previous page.";
+                _msgBox.Text = "Face detection is started successfully and TC is passed. " +
+                    "Please go back to previous page.";
 
-                Camera.StopFaceDetection();
-                ManualTest.Confirm();
+                ConfirmAndHideView();
             };
 
             /*
@@ -348,7 +354,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -356,7 +362,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFaceDetection();
+                TestCamera.StartFaceDetection();
 
                 _button2.IsEnabled = false;
             };
@@ -383,7 +389,7 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.ChangeDevice(CameraDevice.Front);
+            TestCamera.ChangeDevice(CameraDevice.Front);
 
             /*
              * TEST CODE
@@ -397,12 +403,13 @@ namespace Tizen.Multimedia.Tests
 
                 try
                 {
-                    Camera.StartFaceDetection();
+                    TestCamera.StartFaceDetection();
                 }
                 catch (InvalidOperationException)
                 {
                     _msgBox.Text = "InvalidOperationException is occured correctly and TC is passed. Please go back to previous page.";
-                    ManualTest.Confirm();
+
+                    ConfirmAndHideView();
                     return;
                 }
 
@@ -432,14 +439,16 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.FocusStateChanged += (s, e) =>
+            TestCamera.FocusStateChanged += (s, e) =>
             {
                 if (Enum.IsDefined(typeof(CameraFocusState), e.State))
                 {
-                    _msgBox.Text = "Focus state is changed successfully and TC is passed. Please go back to previous page.";
+                    _msgBox.Text = "Focus state is changed successfully and TC is passed. " +
+                        "Please go back to previous page.";
+
+                    TestCamera.StopFocusing();
 
-                    Camera.StopFocusing();
-                    ManualTest.Confirm();
+                    ConfirmAndHideView();
                 }
             };
 
@@ -451,7 +460,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -459,7 +468,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFocusing(true);
+                TestCamera.StartFocusing(true);
 
                 _button2.IsEnabled = false;
             };
@@ -498,12 +507,13 @@ namespace Tizen.Multimedia.Tests
 
                 try
                 {
-                    Camera.StartFocusing(true);
+                    TestCamera.StartFocusing(true);
                 }
                 catch (InvalidOperationException)
                 {
                     _msgBox.Text = "InvalidOperationException is occured correctly and TC is passed. Please go back to previous page.";
-                    ManualTest.Confirm();
+
+                    ConfirmAndHideView();
                     return;
                 }
 
@@ -533,14 +543,13 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.ChangeDevice(CameraDevice.Front);
+            TestCamera.ChangeDevice(CameraDevice.Front);
 
-            Camera.FaceDetected += (s, e) =>
+            TestCamera.FaceDetected += (s, e) =>
             {
                 _msgBox.Text = "Face is detected successfully and TC is passed. Please go back to previous page.";
 
-                Camera.StopFaceDetection();
-                ManualTest.Confirm();
+                ConfirmAndHideView();
             };
 
             /*
@@ -551,7 +560,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -559,7 +568,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFaceDetection();
+                TestCamera.StartFaceDetection();
 
                 _button2.IsEnabled = false;
             };
@@ -586,14 +595,15 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.FocusStateChanged += (s, e) =>
+            TestCamera.FocusStateChanged += (s, e) =>
             {
                 if (Enum.IsDefined(typeof(CameraFocusState), e.State))
                 {
                     _msgBox.Text = "Focus state is changed successfully and TC is passed. Please go back to previous page.";
 
-                    Camera.StopFocusing();
-                    ManualTest.Confirm();
+                    TestCamera.StopFocusing();
+
+                    ConfirmAndHideView();
                 }
             };
 
@@ -605,7 +615,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -613,7 +623,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFocusing(true);
+                TestCamera.StartFocusing(true);
 
                 _button2.IsEnabled = false;
             };
index 3f9844a..e05e086 100755 (executable)
@@ -27,14 +27,15 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.FocusStateChanged += (s, e) =>
+            TestCamera.FocusStateChanged += (s, e) =>
             {
                 if (Enum.IsDefined(typeof(CameraFocusState), e.State))
                 {
                     _msgBox.Text = "Focus state is changed successfully and TC is passed. Please go back to previous page.";
 
-                    Camera.StopFocusing();
-                    ManualTest.Confirm();
+                    TestCamera.StopFocusing();
+
+                    ConfirmAndHideView();
                 }
             };
 
@@ -46,7 +47,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -54,7 +55,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFocusing(true);
+                TestCamera.StartFocusing(true);
 
                 _button2.IsEnabled = false;
             };
index 091038c..699e40b 100755 (executable)
@@ -10,6 +10,15 @@ namespace Tizen.Multimedia.Tests
     [Description("Testing FaceDetectedEventArgs class")]
     public class FaceDetectedEventArgsTests : CameraTestBase
     {
+        [SetUp]
+        public void SetUp()
+        {
+            if (_isCameraSupported)
+            {
+                TestCamera.ChangeDevice(CameraDevice.Front);
+            }
+        }
+
         [Test]
         [Category("P1")]
         [Description("MANUAL TEST : Test Faces property of FaceDetectedEventArgs")]
@@ -29,14 +38,11 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.ChangeDevice(CameraDevice.Front);
-
-            Camera.FaceDetected += (s, e) =>
+            TestCamera.FaceDetected += (s, e) =>
             {
                 _msgBox.Text = "Face is detected successfully and TC is passed. Please go back to previous page.";
 
-                Camera.StopFaceDetection();
-                ManualTest.Confirm();
+                ConfirmAndHideView();
             };
 
             /*
@@ -47,7 +53,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -55,7 +61,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFaceDetection();
+                TestCamera.StartFaceDetection();
 
                 _button2.IsEnabled = false;
             };
index f69c7ef..f2c3a3f 100755 (executable)
@@ -15,6 +15,15 @@ namespace Tizen.Multimedia.Tests
     [Description("Testing FaceDetectionData class")]
     public class FaceDetectionDataTests : CameraTestBase
     {
+        [SetUp]
+        public void SetUp()
+        {
+            if (_isCameraSupported)
+            {
+                TestCamera.ChangeDevice(CameraDevice.Front);
+            }
+        }
+
         [Test]
         [Category("P1")]
         [Description("MANUAL TEST : Test Id property of FaceDetectionData.")]
@@ -34,19 +43,16 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.ChangeDevice(CameraDevice.Front);
-
-            Camera.FaceDetected += (s, e) =>
+            TestCamera.FaceDetected += (s, e) =>
             {
                 _msgBox.Text = "Face is detected successfully and TC is passed. Please go back to previous page.";
-                Camera.StopFaceDetection();
 
                 IList<FaceDetectionData> faces = e.Faces.ToList();
                 if (faces.Count() > 0)
                 {
                     if (faces[0].Id >= 0)
                     {
-                        ManualTest.Confirm();
+                        ConfirmAndHideView();
                     }
                 }
             };
@@ -59,7 +65,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -67,7 +73,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFaceDetection();
+                TestCamera.StartFaceDetection();
 
                 _button2.IsEnabled = false;
             };
@@ -94,19 +100,16 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.ChangeDevice(CameraDevice.Front);
-
-            Camera.FaceDetected += (s, e) =>
+            TestCamera.FaceDetected += (s, e) =>
             {
                 _msgBox.Text = "Face is detected successfully and TC is passed. Please go back to previous page.";
-                Camera.StopFaceDetection();
 
                 IList<FaceDetectionData> faces = e.Faces.ToList();
                 if (faces.Count() > 0)
                 {
                     if (faces[0].Score >= 0)
                     {
-                        ManualTest.Confirm();
+                        ConfirmAndHideView();
                     }
                 }
             };
@@ -119,7 +122,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -127,7 +130,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFaceDetection();
+                TestCamera.StartFaceDetection();
 
                 _button2.IsEnabled = false;
             };
@@ -154,19 +157,16 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.ChangeDevice(CameraDevice.Front);
-
-            Camera.FaceDetected += (s, e) =>
+            TestCamera.FaceDetected += (s, e) =>
             {
                 _msgBox.Text = "Face is detected successfully and TC is passed. Please go back to previous page.";
-                Camera.StopFaceDetection();
 
                 IList<FaceDetectionData> faces = e.Faces.ToList();
                 if (faces.Count() > 0)
                 {
                     if (faces[0].X >= 0)
                     {
-                        ManualTest.Confirm();
+                        ConfirmAndHideView();
                     }
                 }
             };
@@ -179,7 +179,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -187,7 +187,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFaceDetection();
+                TestCamera.StartFaceDetection();
 
                 _button2.IsEnabled = false;
             };
@@ -214,19 +214,16 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.ChangeDevice(CameraDevice.Front);
-
-            Camera.FaceDetected += (s, e) =>
+            TestCamera.FaceDetected += (s, e) =>
             {
                 _msgBox.Text = "Face is detected successfully and TC is passed. Please go back to previous page.";
-                Camera.StopFaceDetection();
 
                 IList<FaceDetectionData> faces = e.Faces.ToList();
                 if (faces.Count() > 0)
                 {
                     if (faces[0].Y >= 0)
                     {
-                        ManualTest.Confirm();
+                        ConfirmAndHideView();
                     }
                 }
             };
@@ -239,7 +236,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -247,7 +244,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFaceDetection();
+                TestCamera.StartFaceDetection();
 
                 _button2.IsEnabled = false;
             };
@@ -274,19 +271,16 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.ChangeDevice(CameraDevice.Front);
-
-            Camera.FaceDetected += (s, e) =>
+            TestCamera.FaceDetected += (s, e) =>
             {
                 _msgBox.Text = "Face is detected successfully and TC is passed. Please go back to previous page.";
-                Camera.StopFaceDetection();
 
                 IList<FaceDetectionData> faces = e.Faces.ToList();
                 if (faces.Count() > 0)
                 {
                     if (faces[0].Width >= 0)
                     {
-                        ManualTest.Confirm();
+                        ConfirmAndHideView();
                     }
                 }
             };
@@ -299,7 +293,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -307,7 +301,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFaceDetection();
+                TestCamera.StartFaceDetection();
 
                 _button2.IsEnabled = false;
             };
@@ -334,19 +328,16 @@ namespace Tizen.Multimedia.Tests
                 return;
             }
 
-            Camera.ChangeDevice(CameraDevice.Front);
-
-            Camera.FaceDetected += (s, e) =>
+            TestCamera.FaceDetected += (s, e) =>
             {
                 _msgBox.Text = "Face is detected successfully and TC is passed. Please go back to previous page.";
-                Camera.StopFaceDetection();
 
                 IList<FaceDetectionData> faces = e.Faces.ToList();
                 if (faces.Count() > 0)
                 {
                     if (faces[0].Height >= 0)
                     {
-                        ManualTest.Confirm();
+                        ConfirmAndHideView();
                     }
                 }
             };
@@ -359,7 +350,7 @@ namespace Tizen.Multimedia.Tests
 
             _button1.Clicked += (sender, e) =>
             {
-                Camera.StartPreview();
+                TestCamera.StartPreview();
 
                 _button1.IsEnabled = false;
                 _button2.IsEnabled = true;
@@ -367,7 +358,7 @@ namespace Tizen.Multimedia.Tests
 
             _button2.Clicked += (sender, e) =>
             {
-                Camera.StartFaceDetection();
+                TestCamera.StartFaceDetection();
 
                 _button2.IsEnabled = false;
             };
index 9d7996f..c9f09e1 100755 (executable)
@@ -11,26 +11,21 @@ namespace Tizen.Multimedia.Tests
 {
     [TestFixture]
     [Description("Testing Recorder class")]
-    public class RecorderTests
+    public class RecorderTests : CameraTestBase
     {
-        private Camera _camera;
         private Recorder _videoRecorder;
-        private bool _isCameraSupported = true;
         private string _filePath;
-        private Button _button1;
-        private Button _button2;
-        private Button _button3;
-        private Label _currentState, _msgBox;
 
         [SetUp]
         public void SetUp()
         {
             try
             {
-                _camera = new Camera(CameraDevice.Rear);
-                var supportedVideoCodec = VideoRecorder.GetSupportedVideoCodecs().FirstOrDefault();
+                var supportedVideoCodec = VideoRecorder.GetSupportedVideoCodecs().First(
+                    codec => codec != RecorderVideoCodec.H263);
                 var fileFormat = supportedVideoCodec.GetSupportedFileFormats().First();
-                _videoRecorder = new VideoRecorder(_camera, supportedVideoCodec, fileFormat);
+
+                _videoRecorder = new VideoRecorder(TestCamera, supportedVideoCodec, fileFormat);
                 _filePath = StorageManager.Storages.Where(s => s.StorageType == StorageArea.Internal).
                     FirstOrDefault().RootDirectory + "/recordertest";
 
@@ -53,129 +48,12 @@ namespace Tizen.Multimedia.Tests
         {
             _videoRecorder?.Dispose();
 
-            _camera?.Dispose();
-
             if (File.Exists(_filePath))
             {
                 File.Delete(_filePath);
             }
         }
 
-        private async Task<bool> CheckCameraSupported(string msg)
-        {
-            if (_isCameraSupported == false)
-            {
-                await NotSupportedHelper.DisplayNotSupportedLabel(msg);
-                return true;
-            }
-
-            return false;
-        }
-
-        private async Task CreateButton(string str1, string str2 = "", string str3 = "")
-        {
-            var tcs = new TaskCompletionSource<bool>();
-
-            Device.BeginInvokeOnMainThread(() =>
-            {
-                Extension.MediaView mediaView = new Extension.MediaView
-                {
-                    IsVisible = true,
-                    HorizontalOptions = LayoutOptions.FillAndExpand,
-                    VerticalOptions = LayoutOptions.FillAndExpand,
-                    MinimumWidthRequest = 100,
-                    MinimumHeightRequest = 200
-                };
-
-                _button1 = new Button()
-                {
-                    Text = str1,
-                    HorizontalOptions = LayoutOptions.CenterAndExpand,
-                    VerticalOptions = LayoutOptions.CenterAndExpand,
-                    MinimumWidthRequest = 210,
-                    MinimumHeightRequest = 45
-                };
-                _button2 = new Button()
-                {
-                    Text = str2,
-                    HorizontalOptions = LayoutOptions.CenterAndExpand,
-                    VerticalOptions = LayoutOptions.CenterAndExpand,
-                    MinimumWidthRequest = 210,
-                    MinimumHeightRequest = 45,
-                    IsEnabled = false
-                };
-                _button3 = new Button()
-                {
-                    Text = str3,
-                    HorizontalOptions = LayoutOptions.CenterAndExpand,
-                    VerticalOptions = LayoutOptions.CenterAndExpand,
-                    MinimumWidthRequest = 210,
-                    MinimumHeightRequest = 45,
-                    IsEnabled = false
-                };
-                _currentState = new Label()
-                {
-                    Text = "Current State : ",
-                    HorizontalOptions = LayoutOptions.CenterAndExpand,
-                    VerticalOptions = LayoutOptions.Start,
-                    HeightRequest = 50,
-                    TextColor = Color.White
-                };
-
-                _msgBox = new Label()
-                {
-                    Text = "Start test.",
-                    HorizontalOptions = LayoutOptions.CenterAndExpand,
-                    VerticalOptions = LayoutOptions.Start,
-                    MinimumHeightRequest = 50,
-                    TextColor = Color.Black
-                };
-
-                mediaView.NativeViewCreated += (s, e) =>
-                {
-                    _camera.Display = new Display((MediaView)mediaView.NativeView);
-                };
-
-                var layout = new StackLayout()
-                {
-                    HorizontalOptions = LayoutOptions.FillAndExpand,
-                    VerticalOptions = LayoutOptions.CenterAndExpand,
-                    Orientation = StackOrientation.Horizontal,
-                    Children = {
-                        _button1,
-                        _button2,
-                        _button3,
-                    },
-                };
-
-                var mainLayout = new StackLayout()
-                {
-                    Orientation = StackOrientation.Vertical,
-                    IsVisible = true,
-                    HorizontalOptions = LayoutOptions.FillAndExpand,
-                    VerticalOptions = LayoutOptions.FillAndExpand,
-                    Spacing = 10,
-                    Padding = new Thickness(10),
-                    Children =
-                    {
-                        _currentState,
-                        mediaView,
-                        _msgBox,
-                        layout
-                    }
-                };
-
-                TestPage.GetInstance().ExecuteTC(new ContentPage()
-                {
-                    Content = mainLayout
-                });
-
-                tcs.SetResult(true);
-            });
-
-            await tcs.Task;
-        }
-
         [Test]
         [Category("P1")]
         [Description("MANUAL TEST : Test Start method of Recorder.")]
@@ -202,7 +80,7 @@ namespace Tizen.Multimedia.Tests
                     if (File.Exists(_filePath))
                     {
                         _msgBox.Text = "Recording is started successfully and TC is passed. Please go back to previous page.";
-                        ManualTest.Confirm();
+                        ConfirmAndHideView();
                     }
                     else
                     {
@@ -256,7 +134,7 @@ namespace Tizen.Multimedia.Tests
                     if (File.Exists(_filePath))
                     {
                         _msgBox.Text = "Recording is paused successfully and TC is passed. Please go back to previous page.";
-                        ManualTest.Confirm();
+                        ConfirmAndHideView();
                     }
                     else
                     {
@@ -324,7 +202,7 @@ namespace Tizen.Multimedia.Tests
                     if (File.Exists(_filePath))
                     {
                         _msgBox.Text = "Recording file is saved successfully and TC is passed. Please go back to previous page.";
-                        ManualTest.Confirm();
+                        ConfirmAndHideView();
                     }
                     else
                     {
@@ -385,7 +263,7 @@ namespace Tizen.Multimedia.Tests
                     if (!File.Exists(_filePath))
                     {
                         _msgBox.Text = "Recording is canceled successfully and TC is passed. Please go back to previous page.";
-                        ManualTest.Confirm();
+                        ConfirmAndHideView();
                     }
                     else
                     {
index 01ae160..e51bad8 100755 (executable)
@@ -5,19 +5,19 @@ using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
 using Xamarin.Forms;
-using Extension = Tizen.Xamarin.Forms.Extension;
 
 namespace Tizen.Multimedia.Tests
 {
     public class CameraTestBase
     {
-        protected Camera Camera { get; private set; }
+        protected Camera TestCamera { get; private set; }
         protected bool _isCameraSupported = true;
         protected Button _button1;
         protected Button _button2;
         protected Button _button3;
         protected Label _currentState, _msgBox;
         protected Image _image = null;
+        protected VideoView _videoView;
         protected const string LogTag = "Tizen.Multimedia.CameraTest";
 
         [SetUp]
@@ -25,7 +25,7 @@ namespace Tizen.Multimedia.Tests
         {
             try
             {
-                Camera = new Camera(CameraDevice.Rear);
+                TestCamera = new Camera(CameraDevice.Rear);
             }
             catch (NotSupportedException) when (FeatureChecker.IsSupported(Features.Camera) == false)
             {
@@ -36,19 +36,19 @@ namespace Tizen.Multimedia.Tests
         [TearDown]
         public void Destroy()
         {
-            if (Camera != null)
+            if (TestCamera != null)
             {
-                if (Camera.State == CameraState.Captured)
+                if (TestCamera.State == CameraState.Captured)
                 {
-                    Camera.StartPreview();
-                    Camera.StopPreview();
+                    TestCamera.StartPreview();
+                    TestCamera.StopPreview();
                 }
-                else if (Camera.State == CameraState.Preview)
+                else if (TestCamera.State == CameraState.Preview)
                 {
-                    Camera.StopPreview();
+                    TestCamera.StopPreview();
                 }
 
-                Camera.Dispose();
+                TestCamera.Dispose();
             }
         }
 
@@ -65,7 +65,7 @@ namespace Tizen.Multimedia.Tests
 
         protected async Task<bool> CheckContinuousCaptureSupported(string msg)
         {
-            if (Camera.Capabilities.IsContinuousCaptureSupported == false)
+            if (TestCamera.Capabilities.IsContinuousCaptureSupported == false)
             {
                 await NotSupportedHelper.DisplayNotSupportedLabel(msg);
                 return true;
@@ -76,7 +76,7 @@ namespace Tizen.Multimedia.Tests
 
         protected async Task<bool> CheckFDSupported(string msg)
         {
-            if (Camera.Capabilities.IsFaceDetectionSupported == false)
+            if (TestCamera.Capabilities.IsFaceDetectionSupported == false)
             {
                 await NotSupportedHelper.DisplayNotSupportedLabel(msg);
                 return true;
@@ -89,7 +89,7 @@ namespace Tizen.Multimedia.Tests
         {
             CameraAutoFocusMode supportedAutoFocusMode = CameraAutoFocusMode.None;
 
-            IList<CameraAutoFocusMode> autoFocusModes = Camera.Capabilities.SupportedAutoFocusModes.ToList();
+            IList<CameraAutoFocusMode> autoFocusModes = TestCamera.Capabilities.SupportedAutoFocusModes.ToList();
             foreach (var autoFocusMode in autoFocusModes)
             {
                 if (autoFocusMode != CameraAutoFocusMode.None)
@@ -108,13 +108,20 @@ namespace Tizen.Multimedia.Tests
             return false;
         }
 
+        protected void ConfirmAndHideView()
+        {
+            _videoView.IsVisible = false;
+            _currentState.Text = "";
+            ManualTest.Confirm();
+        }
+
         protected async Task CreateButton(string str1, string str2 = "", string str3 = "")
         {
             var tcs = new TaskCompletionSource<bool>();
 
             Device.BeginInvokeOnMainThread(() =>
             {
-                Extension.MediaView mediaView = new Extension.MediaView
+                _videoView = new VideoView
                 {
                     IsVisible = true,
                     HorizontalOptions = LayoutOptions.FillAndExpand,
@@ -123,6 +130,11 @@ namespace Tizen.Multimedia.Tests
                     MinimumHeightRequest = 200
                 };
 
+                _videoView.NativeViewCreated += (s, e) =>
+                {
+                    TestCamera.Display = new Display((MediaView)(s as VideoView).NativeView);
+                };
+
                 _button1 = new Button()
                 {
                     Text = str1,
@@ -149,6 +161,14 @@ namespace Tizen.Multimedia.Tests
                     MinimumHeightRequest = 45,
                     IsEnabled = false
                 };
+                _currentState = new Label()
+                {
+                    Text = "",
+                    HorizontalOptions = LayoutOptions.CenterAndExpand,
+                    VerticalOptions = LayoutOptions.Start,
+                    HeightRequest = 50,
+                    TextColor = Color.White
+                };
 
                 _msgBox = new Label()
                 {
@@ -159,11 +179,6 @@ namespace Tizen.Multimedia.Tests
                     TextColor = Color.Black
                 };
 
-                mediaView.NativeViewCreated += (s, e) =>
-                {
-                    Camera.Display = new Display((MediaView)mediaView.NativeView);
-                };
-
                 var layout = new StackLayout()
                 {
                     HorizontalOptions = LayoutOptions.FillAndExpand,
@@ -186,7 +201,8 @@ namespace Tizen.Multimedia.Tests
                     Padding = new Thickness(10),
                     Children =
                     {
-                        mediaView,
+                        _currentState,
+                        _videoView,
                         _msgBox,
                         layout
                     }
diff --git a/tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/support/VideoView.cs b/tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/support/VideoView.cs
new file mode 100644 (file)
index 0000000..da1a295
--- /dev/null
@@ -0,0 +1,53 @@
+using System;
+using System.ComponentModel;
+using Xamarin.Forms;
+
+namespace Tizen.Multimedia.Tests
+{
+    public class VideoView : View, IMediaViewController
+    {
+        internal static readonly BindablePropertyKey NativeViewPropertyKey =
+            BindableProperty.CreateReadOnly("NativeView", typeof(object), typeof(VideoView), default(object));
+
+        /// <summary>
+        /// BindableProperty. Identifies the NativeView bindable property.
+        /// </summary>
+        public static readonly BindableProperty NativeViewProperty = NativeViewPropertyKey.BindableProperty;
+
+        /// <summary>
+        /// NativeView allows application developers to display the video output on screen.
+        /// </summary>
+        public object NativeView
+        {
+            get { return GetValue(NativeViewProperty); }
+        }
+
+        /// <summary>
+        /// Occurs when the NativeView is created.
+        /// </summary>
+        public event EventHandler NativeViewCreated;
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public void SetNativeView(object value)
+        {
+            SetValue(NativeViewPropertyKey, value);
+        }
+
+        void IMediaViewController.SendNativeViewCreated()
+        {
+            NativeViewCreated?.Invoke(this, EventArgs.Empty);
+        }
+    }
+
+    /// <summary>
+    /// This interface is for internal use by the platform renderers.
+    /// </summary>
+    public interface IMediaViewController : IViewController
+    {
+        /// <summary>
+        /// For internal use by the platform renderers.
+        /// </summary>
+        void SendNativeViewCreated();
+
+    }
+}
\ No newline at end of file
diff --git a/tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/support/VideoViewRenderer.cs b/tct-suite-vs/Tizen.Multimedia.Manual.Tests/testcase/support/VideoViewRenderer.cs
new file mode 100755 (executable)
index 0000000..366584b
--- /dev/null
@@ -0,0 +1,46 @@
+using System;
+using Xamarin.Forms.Platform.Tizen;
+using Tizen.Multimedia.Tests;
+
+[assembly: ExportRenderer(typeof(VideoView), typeof(VideoViewRenderer))]
+namespace Tizen.Multimedia.Tests
+{
+    public class VideoViewRenderer : VisualElementRenderer<VideoView>
+    {
+        MediaView _control;
+
+        public VideoViewRenderer() { }
+
+        protected override void OnElementChanged(ElementChangedEventArgs<VideoView> e)
+        {
+            if (_control == null)
+            {
+                _control = new MediaView(Forms.NativeParent);
+                SetNativeView(_control);
+            }
+
+            if (e.OldElement != null)
+            {
+                _control.Resized -= NatvieViewResized;
+            }
+
+            if (e.NewElement != null)
+            {
+                _control.Resized += NatvieViewResized;
+
+                Element.SetNativeView(_control);
+
+                IMediaViewController mediaView = Element as IMediaViewController;
+
+                mediaView?.SendNativeViewCreated();
+            }
+
+            base.OnElementChanged(e);
+        }
+
+        void NatvieViewResized(object sender, EventArgs e)
+        {
+            ((IMediaViewController)Element).NativeSizeChanged();
+        }
+    }
+}
\ No newline at end of file