using global::System; using NUnit.Framework; using NUnit.Framework.TUnit; using Tizen.NUI.Components; using Tizen.NUI.BaseComponents; using System.Collections.Generic; namespace Tizen.NUI.Devel.Tests { using tlog = Tizen.Log; [TestFixture] [Description("public/BaseComponents/ViewAccessibility")] public class PublicViewAccessibilityTest { private const string tag = "NUITEST"; private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/picture.png"; private string lottiePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/lottie.json"; internal class MyAddressCollection : AddressCollection { public MyAddressCollection(IntPtr collection) : base(collection) { } public void OnReleaseHandle() { base.ReleaseHandle(); } } [SetUp] public void Init() { tlog.Info(tag, "Init() is called!"); } [TearDown] public void Destroy() { tlog.Info(tag, "Destroy() is called!"); } [Test] [Category("P1")] [Description("ViewAccessibility.Address constructor.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.Address.Address C")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "CONSTR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityAddressConstructor() { tlog.Debug(tag, $"ViewAccessibilityAddressConstructor START"); var testingTarget = new Address("ViewAccessibility", lottiePath); Assert.IsNotNull(testingTarget, "Can't create success object Address"); Assert.IsInstanceOf
(testingTarget, "Should be an instance of Address type."); tlog.Debug(tag, $"ViewAccessibilityAddressConstructor END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.AddressCollection constructor.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.AddressCollection.Address C")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "CONSTR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityAddressCollectionConstructor() { tlog.Debug(tag, $"ViewAccessibilityAddressCollectionConstructor START"); using (View view = new ImageView()) { var testingTarget = new AddressCollection(Interop.ControlDevel.DaliToolkitDevelControlNewGetAccessibilityRelations(view.SwigCPtr)); Assert.IsNotNull(testingTarget, "Can't create success object AddressCollection"); Assert.IsInstanceOf(testingTarget, "Should be an instance of AddressCollection type."); } tlog.Debug(tag, $"ViewAccessibilityAddressCollectionConstructor END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.AddressCollection IsInvalid.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.AddressCollection.IsInvalid A")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "PRO")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityAddressCollectionIsInvalid() { tlog.Debug(tag, $"ViewAccessibilityAddressCollectionIsInvalid START"); using (View view = new ImageView()) { var testingTarget = new AddressCollection(Interop.ControlDevel.DaliToolkitDevelControlNewGetAccessibilityRelations(view.SwigCPtr)); Assert.IsNotNull(testingTarget, "Can't create success object AddressCollection"); Assert.IsInstanceOf(testingTarget, "Should be an instance of AddressCollection type."); Assert.IsFalse(testingTarget.IsInvalid); } tlog.Debug(tag, $"ViewAccessibilityAddressCollectionIsInvalid END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.AddressCollection GetRelationSize.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.AddressCollection.GetRelationSize M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityAddressCollectionGetRelationSize() { tlog.Debug(tag, $"ViewAccessibilityAddressCollectionGetRelationSize START"); using (View view = new ImageView()) { var testingTarget = new AddressCollection(Interop.ControlDevel.DaliToolkitDevelControlNewGetAccessibilityRelations(view.SwigCPtr)); Assert.IsNotNull(testingTarget, "Can't create success object AddressCollection"); Assert.IsInstanceOf(testingTarget, "Should be an instance of AddressCollection type."); try { testingTarget.GetRelationSize(AccessibilityRelationType.DetailsFor); } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception: Failed!"); } } tlog.Debug(tag, $"ViewAccessibilityAddressCollectionGetRelationSize END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.AddressCollection ReleaseHandle.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.AddressCollection.ReleaseHandle M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityAddressCollectionReleaseHandle() { tlog.Debug(tag, $"ViewAccessibilityAddressCollectionReleaseHandle START"); using (View view = new ImageView()) { var testingTarget = new MyAddressCollection(Interop.ControlDevel.DaliToolkitDevelControlNewGetAccessibilityRelations(view.SwigCPtr)); Assert.IsNotNull(testingTarget, "Can't create success object AddressCollection"); Assert.IsInstanceOf(testingTarget, "Should be an instance of AddressCollection type."); try { testingTarget.OnReleaseHandle(); } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception: Failed!"); } } tlog.Debug(tag, $"ViewAccessibilityAddressCollectionReleaseHandle END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.AccessibilityRange StartOffset.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.AccessibilityRange.StartOffset A")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "PRO")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityAccessibilityRangeStartOffset() { tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeStartOffset START"); var testingTarget = new AccessibilityRange(); Assert.IsNotNull(testingTarget, "Can't create success object AccessibilityRange"); Assert.IsInstanceOf(testingTarget, "Should be an instance of AccessibilityRange type."); testingTarget.StartOffset = 10; Assert.AreEqual(10, testingTarget.StartOffset, "Should be equal!"); tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeStartOffset END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.AccessibilityRange EndOffset.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.AccessibilityRange.EndOffset A")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "PRO")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityAccessibilityRangeEndOffset() { tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeEndOffset START"); var testingTarget = new AccessibilityRange(); Assert.IsNotNull(testingTarget, "Can't create success object AccessibilityRange"); Assert.IsInstanceOf(testingTarget, "Should be an instance of AccessibilityRange type."); testingTarget.EndOffset = 30; Assert.AreEqual(30, testingTarget.EndOffset, "Should be equal!"); tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeEndOffset END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.AccessibilityRange Content.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.AccessibilityRange.Content A")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "PRO")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityAccessibilityRangeContent() { tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeContent START"); var testingTarget = new AccessibilityRange(); Assert.IsNotNull(testingTarget, "Can't create success object AccessibilityRange"); Assert.IsInstanceOf(testingTarget, "Should be an instance of AccessibilityRange type."); testingTarget.Content = "TextLabel"; Assert.AreEqual("TextLabel", testingTarget.Content, "Should be equal!"); tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeContent END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.View.RemoveAccessibilityAttribute.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.RemoveAccessibilityAttribute M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityViewRemoveAccessibilityAttribute() { tlog.Debug(tag, $"ViewAccessibilityViewRemoveAccessibilityAttribute START"); var testingTarget = new View(); Assert.IsNotNull(testingTarget, "Can't create success object View"); Assert.IsInstanceOf(testingTarget, "Should be an instance of View type."); testingTarget.AppendAccessibilityAttribute("MyView", "test"); try { testingTarget.RemoveAccessibilityAttribute("MyView"); } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception: Failed!"); } testingTarget.Dispose(); tlog.Debug(tag, $"ViewAccessibilityViewRemoveAccessibilityAttribute END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.View.ClearAccessibilityAttributes.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.ClearAccessibilityAttributes MR")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityViewClearAccessibilityAttributes() { tlog.Debug(tag, $"ViewAccessibilityViewClearAccessibilityAttributes START"); var testingTarget = new View(); Assert.IsNotNull(testingTarget, "Can't create success object View"); Assert.IsInstanceOf(testingTarget, "Should be an instance of View type."); testingTarget.AppendAccessibilityAttribute("MyView", "test"); try { testingTarget.ClearAccessibilityAttributes(); } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception: Failed!"); } testingTarget.Dispose(); tlog.Debug(tag, $"ViewAccessibilityViewClearAccessibilityAttributes END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.View.ClearAccessibilityHighlight.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.ClearAccessibilityHighlight M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityViewClearAccessibilityHighlight() { tlog.Debug(tag, $"ViewAccessibilityViewClearAccessibilityHighlight START"); var testingTarget = new View(); Assert.IsNotNull(testingTarget, "Can't create success object View"); Assert.IsInstanceOf(testingTarget, "Should be an instance of View type."); testingTarget.AccessibilityHighlightable = true; try { var result = testingTarget.ClearAccessibilityHighlight(); tlog.Debug(tag, "ClearAccessibilityHighlight : " + result); result = testingTarget.GrabAccessibilityHighlight(); tlog.Debug(tag, "GrabAccessibilityHighlight : " + result); } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception: Failed!"); } testingTarget.Dispose(); tlog.Debug(tag, $"ViewAccessibilityViewClearAccessibilityHighlight END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.View.AppendAccessibilityRelation.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.AppendAccessibilityRelation M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityViewAppendAccessibilityRelation() { tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelation START"); var testingTarget = new View() { Size = new Size2D(100, 100), PositionUsesPivotPoint = true, ParentOrigin = ParentOrigin.TopCenter, PivotPoint = PivotPoint.TopCenter, BackgroundColor = Color.AquaMarine, }; Assert.IsNotNull(testingTarget, "Can't create success object View"); Assert.IsInstanceOf(testingTarget, "Should be an instance of View type."); using (View child = new View()) { try { testingTarget.AppendAccessibilityRelation(child, AccessibilityRelationType.MemberOf); var result = testingTarget.GetAccessibilityRelations(); tlog.Debug(tag, "AccessibilityRelations : " + result); testingTarget.RemoveAccessibilityRelation(child, AccessibilityRelationType.MemberOf); testingTarget.ClearAccessibilityRelations(); } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception : Failed!"); } } testingTarget.Dispose(); tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelation END (OK)"); } [Test] [Category("P2")] [Description("ViewAccessibility.View.AppendAccessibilityRelation.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.AppendAccessibilityRelation M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityViewAppendAccessibilityRelationNullValue() { tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelationNullValue START"); var testingTarget = new View() { Size = new Size2D(100, 100), PositionUsesPivotPoint = true, ParentOrigin = ParentOrigin.TopCenter, PivotPoint = PivotPoint.TopCenter, BackgroundColor = Color.AquaMarine, }; Assert.IsNotNull(testingTarget, "Can't create success object View"); Assert.IsInstanceOf(testingTarget, "Should be an instance of View type."); View child = null; try { testingTarget.AppendAccessibilityRelation(child, AccessibilityRelationType.MemberOf); } catch (ArgumentNullException) { testingTarget.Dispose(); tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelationNullValue END (OK)"); Assert.Pass("Caught ArgumentNullException : Passed!"); } } [Test] [Category("P1")] [Description("ViewAccessibility.View.SetAccessibilityReadingInfoTypes.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.SetAccessibilityReadingInfoTypes M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityViewSetAccessibilityReadingInfoTypes() { tlog.Debug(tag, $"ViewAccessibilityViewSetAccessibilityReadingInfoTypes START"); var testingTarget = new View() { Size = new Size2D(100, 100), PositionUsesPivotPoint = true, ParentOrigin = ParentOrigin.TopCenter, PivotPoint = PivotPoint.TopCenter, BackgroundColor = Color.AquaMarine, }; Assert.IsNotNull(testingTarget, "Can't create success object View"); Assert.IsInstanceOf(testingTarget, "Should be an instance of View type."); testingTarget.SetAccessibilityReadingInfoTypes(AccessibilityReadingInfoTypes.Description); var result = testingTarget.GetAccessibilityReadingInfoTypes(); tlog.Debug(tag, "AccessibilityReadingInfoTypes : " + result); testingTarget.Dispose(); tlog.Debug(tag, $"ViewAccessibilityViewSetAccessibilityReadingInfoTypes END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.View.NotifyAccessibilityStatesChange.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.NotifyAccessibilityStatesChange M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityViewNotifyAccessibilityStatesChange() { tlog.Debug(tag, $"ViewAccessibilityViewNotifyAccessibilityStatesChange START"); var testingTarget = new View() { Size = new Size2D(100, 100), PositionUsesPivotPoint = true, ParentOrigin = ParentOrigin.TopCenter, PivotPoint = PivotPoint.TopCenter, BackgroundColor = Color.AquaMarine, }; Assert.IsNotNull(testingTarget, "Can't create success object View"); Assert.IsInstanceOf(testingTarget, "Should be an instance of View type."); testingTarget.NotifyAccessibilityStatesChange(new AccessibilityStates(AccessibilityState.Busy), AccessibilityStatesNotifyMode.Recursive); var result = testingTarget.GetAccessibilityStates(); tlog.Debug(tag, "AccessibilityStates : " + result); testingTarget.Dispose(); tlog.Debug(tag, $"ViewAccessibilityViewNotifyAccessibilityStatesChange END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.View.RegisterDefaultLabel.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.RegisterDefaultLabel M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityRegisterDefaultLabel() { tlog.Debug(tag, $"ViewAccessibilityRegisterDefaultLabel START"); var testingTarget = new View() { Size = new Size2D(100, 100), PositionUsesPivotPoint = true, ParentOrigin = ParentOrigin.TopCenter, PivotPoint = PivotPoint.TopCenter, BackgroundColor = Color.AquaMarine, }; Assert.IsNotNull(testingTarget, "Can't create success object View"); Assert.IsInstanceOf(testingTarget, "Should be an instance of View type."); try { testingTarget.RegisterDefaultLabel(); testingTarget.UnregisterDefaultLabel(); } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception : Failed!"); } testingTarget.Dispose(); tlog.Debug(tag, $"ViewAccessibilityRegisterDefaultLabel END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.EmitAccessibilityEvent.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.EmitAccessibilityEvent M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityEmitAccessibilityEvent() { tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityEvent START"); var testingTarget = new View() { Size = new Size2D(100, 100), PositionUsesPivotPoint = true, ParentOrigin = ParentOrigin.TopCenter, PivotPoint = PivotPoint.TopCenter, BackgroundColor = Color.AquaMarine, }; Assert.IsNotNull(testingTarget, "Can't create success object View"); Assert.IsInstanceOf(testingTarget, "Should be an instance of View type."); try { testingTarget.EmitAccessibilityEvent(AccessibilityPropertyChangeEvent.Name); } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception : Failed!"); } testingTarget.Dispose(); tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityEvent END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.EmitAccessibilityStateChangedEvent.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.EmitAccessibilityStateChangedEvent M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityEmitAccessibilityStateChangedEvent() { tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityStateChangedEvent START"); var testingTarget = new CheckBox() { Size = new Size2D(100, 100), IsSelectable = true, IsSelected = true, }; Assert.IsNotNull(testingTarget, "Can't create success object CheckBox."); Assert.IsInstanceOf(testingTarget, "Should be an instance of CheckBox type."); try { testingTarget.EmitAccessibilityStateChangedEvent(AccessibilityState.Checked, true); } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception : Failed!"); } testingTarget.Dispose(); tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityStateChangedEvent END (OK)"); } [Test] [Category("P1")] [Description("ViewAccessibility.EmitTextInsertedEvent.")] [Property("SPEC", "Tizen.NUI.ViewAccessibility.EmitTextInsertedEvent M")] [Property("SPEC_URL", "-")] [Property("CRITERIA", "MR")] [Property("AUTHOR", "guowei.wang@samsung.com")] public void ViewAccessibilityEmitTextInsertedEvent() { tlog.Debug(tag, $"ViewAccessibilityEmitTextInsertedEvent START"); var testingTarget = new TextLabel() { Text = "InsertedEvent" }; Assert.IsNotNull(testingTarget, "Can't create success object View"); Assert.IsInstanceOf(testingTarget, "Should be an instance of View type."); try { testingTarget.EmitTextInsertedEvent(0, 4, "test"); testingTarget.EmitTextCursorMovedEvent(4); testingTarget.EmitTextDeletedEvent(0, 4, "test"); } catch (Exception e) { tlog.Debug(tag, e.Message.ToString()); Assert.Fail("Caught Exception : Failed!"); } testingTarget.Dispose(); tlog.Debug(tag, $"ViewAccessibilityEmitTextInsertedEvent END (OK)"); } } }