27c177eb265bc7f89cf8de4cfcd083e2b2d031cb
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Tests / Tizen.NUI.Devel.Tests / testcase / public / BaseComponents / TSViewAccessibility.cs
1 using global::System;
2 using NUnit.Framework;
3 using NUnit.Framework.TUnit;
4 using Tizen.NUI.Components;
5 using Tizen.NUI.BaseComponents;
6 using System.Collections.Generic;
7
8
9 namespace Tizen.NUI.Devel.Tests
10 {
11     using tlog = Tizen.Log;
12
13     [TestFixture]
14     [Description("public/BaseComponents/ViewAccessibility")]
15     public class PublicViewAccessibilityTest
16     {
17         private const string tag = "NUITEST";
18         private string url = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/picture.png";
19         private string lottiePath = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "/lottie.json";
20
21         internal class MyView : View
22         {
23             public MyView() : base()
24             { }
25
26             public string GetAccessibilityAttributes(string key)
27             {
28                 return AccessibilityAttributes[key];
29             }
30
31             public void SetAccessibilityAttributes(string key, string value)
32             {
33                 AccessibilityAttributes[key] = value;
34             }
35
36             public void ClearAccessibilityAttributes()
37             {
38                 AccessibilityAttributes.Clear();
39             }
40
41             public void RemoveAccessibilityAttributes(string key)
42             {
43                 AccessibilityAttributes.Remove(key);
44             }
45         }
46
47         [SetUp]
48         public void Init()
49         {
50             tlog.Info(tag, "Init() is called!");
51         }
52
53         [TearDown]
54         public void Destroy()
55         {
56             tlog.Info(tag, "Destroy() is called!");
57         }
58
59         [Test]
60         [Category("P1")]
61         [Description("ViewAccessibility.AccessibilityRange StartOffset.")]
62         [Property("SPEC", "Tizen.NUI.ViewAccessibility.AccessibilityRange.StartOffset A")]
63         [Property("SPEC_URL", "-")]
64         [Property("CRITERIA", "PRO")]
65         [Property("AUTHOR", "guowei.wang@samsung.com")]
66         public void ViewAccessibilityAccessibilityRangeStartOffset()
67         {
68             tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeStartOffset START");
69
70             var testingTarget = new AccessibilityRange();
71             Assert.IsNotNull(testingTarget, "Can't create success object AccessibilityRange");
72             Assert.IsInstanceOf<AccessibilityRange>(testingTarget, "Should be an instance of AccessibilityRange type.");
73
74             testingTarget.StartOffset = 10;
75             Assert.AreEqual(10, testingTarget.StartOffset, "Should be equal!");
76
77             tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeStartOffset END (OK)");
78         }
79
80         [Test]
81         [Category("P1")]
82         [Description("ViewAccessibility.AccessibilityRange EndOffset.")]
83         [Property("SPEC", "Tizen.NUI.ViewAccessibility.AccessibilityRange.EndOffset A")]
84         [Property("SPEC_URL", "-")]
85         [Property("CRITERIA", "PRO")]
86         [Property("AUTHOR", "guowei.wang@samsung.com")]
87         public void ViewAccessibilityAccessibilityRangeEndOffset()
88         {
89             tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeEndOffset START");
90
91             var testingTarget = new AccessibilityRange();
92             Assert.IsNotNull(testingTarget, "Can't create success object AccessibilityRange");
93             Assert.IsInstanceOf<AccessibilityRange>(testingTarget, "Should be an instance of AccessibilityRange type.");
94
95             testingTarget.EndOffset = 30;
96             Assert.AreEqual(30, testingTarget.EndOffset, "Should be equal!");
97
98             tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeEndOffset END (OK)");
99         }
100
101         [Test]
102         [Category("P1")]
103         [Description("ViewAccessibility.AccessibilityRange Content.")]
104         [Property("SPEC", "Tizen.NUI.ViewAccessibility.AccessibilityRange.Content A")]
105         [Property("SPEC_URL", "-")]
106         [Property("CRITERIA", "PRO")]
107         [Property("AUTHOR", "guowei.wang@samsung.com")]
108         public void ViewAccessibilityAccessibilityRangeContent()
109         {
110             tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeContent START");
111
112             var testingTarget = new AccessibilityRange();
113             Assert.IsNotNull(testingTarget, "Can't create success object AccessibilityRange");
114             Assert.IsInstanceOf<AccessibilityRange>(testingTarget, "Should be an instance of AccessibilityRange type.");
115
116             testingTarget.Content = "TextLabel";
117             Assert.AreEqual("TextLabel", testingTarget.Content, "Should be equal!");
118
119             tlog.Debug(tag, $"ViewAccessibilityAccessibilityRangeContent END (OK)");
120         }
121
122         [Test]
123         [Category("P1")]
124         [Description("ViewAccessibility.View.AccessibilityAttributes.Remove.")]
125         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.AccessibilityAttributes.Remove M")]
126         [Property("SPEC_URL", "-")]
127         [Property("CRITERIA", "MR")]
128         [Property("AUTHOR", "guowei.wang@samsung.com")]
129         public void ViewAccessibilityViewRemoveAccessibilityAttribute()
130         {
131             tlog.Debug(tag, $"ViewAccessibilityViewRemoveAccessibilityAttribute START");
132
133             var testingTarget = new MyView();
134             Assert.IsNotNull(testingTarget, "Can't create success object View");
135             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
136
137             testingTarget.SetAccessibilityAttributes("view", "test");
138             var result = testingTarget.GetAccessibilityAttributes("view");
139             Assert.AreEqual("test", result, "Should be equal.");
140
141             try
142             {
143                 testingTarget.RemoveAccessibilityAttributes("view");
144             }
145             catch (Exception e)
146             {
147                 tlog.Debug(tag, e.Message.ToString());
148                 Assert.Fail("Caught Exception: Failed!");
149             }
150
151             testingTarget.Dispose();
152             tlog.Debug(tag, $"ViewAccessibilityViewRemoveAccessibilityAttribute END (OK)");
153         }
154
155         [Test]
156         [Category("P1")]
157         [Description("ViewAccessibility.View.AccessibilityAttributes.Clear.")]
158         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.AccessibilityAttributes.Clear MR")]
159         [Property("SPEC_URL", "-")]
160         [Property("CRITERIA", "MR")]
161         [Property("AUTHOR", "guowei.wang@samsung.com")]
162         public void ViewAccessibilityViewClearAccessibilityAttributes()
163         {
164             tlog.Debug(tag, $"ViewAccessibilityViewClearAccessibilityAttributes START");
165
166             var testingTarget = new MyView();
167             Assert.IsNotNull(testingTarget, "Can't create success object View");
168             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
169
170             testingTarget.SetAccessibilityAttributes("view", "test");
171
172             try
173             {
174                 testingTarget.ClearAccessibilityAttributes();
175             }
176             catch (Exception e)
177             {
178                 tlog.Debug(tag, e.Message.ToString());
179                 Assert.Fail("Caught Exception: Failed!");
180             }
181
182             testingTarget.Dispose();
183             tlog.Debug(tag, $"ViewAccessibilityViewClearAccessibilityAttributes END (OK)");
184         }
185
186         [Test]
187         [Category("P1")]
188         [Description("ViewAccessibility.View.ClearAccessibilityHighlight.")]
189         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.ClearAccessibilityHighlight M")]
190         [Property("SPEC_URL", "-")]
191         [Property("CRITERIA", "MR")]
192         [Property("AUTHOR", "guowei.wang@samsung.com")]
193         public void ViewAccessibilityViewClearAccessibilityHighlight()
194         {
195             tlog.Debug(tag, $"ViewAccessibilityViewClearAccessibilityHighlight START");
196
197             var testingTarget = new View();
198             Assert.IsNotNull(testingTarget, "Can't create success object View");
199             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
200
201             testingTarget.AccessibilityHighlightable = true;
202
203             try
204             {
205                 var result = testingTarget.ClearAccessibilityHighlight();
206                 tlog.Debug(tag, "ClearAccessibilityHighlight : " + result);
207
208                 result = testingTarget.GrabAccessibilityHighlight();
209                 tlog.Debug(tag, "GrabAccessibilityHighlight : " + result);
210             }
211             catch (Exception e)
212             {
213                 tlog.Debug(tag, e.Message.ToString());
214                 Assert.Fail("Caught Exception: Failed!");
215             }
216
217             testingTarget.Dispose();
218             tlog.Debug(tag, $"ViewAccessibilityViewClearAccessibilityHighlight END (OK)");
219         }
220
221         [Test]
222         [Category("P1")]
223         [Description("ViewAccessibility.View.AppendAccessibilityRelation.")]
224         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.AppendAccessibilityRelation M")]
225         [Property("SPEC_URL", "-")]
226         [Property("CRITERIA", "MR")]
227         [Property("AUTHOR", "guowei.wang@samsung.com")]
228         public void ViewAccessibilityViewAppendAccessibilityRelation()
229         {
230             tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelation START");
231
232             var testingTarget = new View()
233             {
234                 Size = new Size2D(100, 100),
235                 PositionUsesPivotPoint = true,
236                 ParentOrigin = ParentOrigin.TopCenter,
237                 PivotPoint = PivotPoint.TopCenter,
238                 BackgroundColor = Color.AquaMarine,
239             };
240             Assert.IsNotNull(testingTarget, "Can't create success object View");
241             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
242
243             using (View child = new View())
244             {
245                 try
246                 {
247                     testingTarget.AppendAccessibilityRelation(child, AccessibilityRelationType.MemberOf);
248                     var result = testingTarget.GetAccessibilityRelations();
249                     tlog.Debug(tag, "AccessibilityRelations : " + result);
250
251                     testingTarget.RemoveAccessibilityRelation(child, AccessibilityRelationType.MemberOf);
252                     testingTarget.ClearAccessibilityRelations();
253                 }
254                 catch (Exception e)
255                 {
256                     tlog.Debug(tag, e.Message.ToString());
257                     Assert.Fail("Caught Exception : Failed!");
258                 }
259             }
260
261             testingTarget.Dispose();
262             tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelation END (OK)");
263         }
264
265         [Test]
266         [Category("P2")]
267         [Description("ViewAccessibility.View.AppendAccessibilityRelation.")]
268         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.AppendAccessibilityRelation M")]
269         [Property("SPEC_URL", "-")]
270         [Property("CRITERIA", "MR")]
271         [Property("AUTHOR", "guowei.wang@samsung.com")]
272         public void ViewAccessibilityViewAppendAccessibilityRelationNullValue()
273         {
274             tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelationNullValue START");
275
276             var testingTarget = new View()
277             {
278                 Size = new Size2D(100, 100),
279                 PositionUsesPivotPoint = true,
280                 ParentOrigin = ParentOrigin.TopCenter,
281                 PivotPoint = PivotPoint.TopCenter,
282                 BackgroundColor = Color.AquaMarine,
283             };
284             Assert.IsNotNull(testingTarget, "Can't create success object View");
285             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
286
287             View child = null;
288             try
289             {
290                 testingTarget.AppendAccessibilityRelation(child, AccessibilityRelationType.MemberOf);
291             }
292             catch (ArgumentNullException)
293             {
294                 testingTarget.Dispose();
295                 tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelationNullValue END (OK)");
296                 Assert.Pass("Caught ArgumentNullException : Passed!");
297             }
298         }
299
300         [Test]
301         [Category("P1")]
302         [Description("ViewAccessibility.View.SetAccessibilityReadingInfoTypes.")]
303         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.SetAccessibilityReadingInfoTypes M")]
304         [Property("SPEC_URL", "-")]
305         [Property("CRITERIA", "MR")]
306         [Property("AUTHOR", "guowei.wang@samsung.com")]
307         public void ViewAccessibilityViewSetAccessibilityReadingInfoTypes()
308         {
309             tlog.Debug(tag, $"ViewAccessibilityViewSetAccessibilityReadingInfoTypes START");
310
311             var testingTarget = new View()
312             {
313                 Size = new Size2D(100, 100),
314                 PositionUsesPivotPoint = true,
315                 ParentOrigin = ParentOrigin.TopCenter,
316                 PivotPoint = PivotPoint.TopCenter,
317                 BackgroundColor = Color.AquaMarine,
318             };
319             Assert.IsNotNull(testingTarget, "Can't create success object View");
320             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
321
322
323             testingTarget.SetAccessibilityReadingInfoTypes(AccessibilityReadingInfoTypes.Description);
324             var result = testingTarget.GetAccessibilityReadingInfoTypes();
325             tlog.Debug(tag, "AccessibilityReadingInfoTypes : " + result);
326
327             testingTarget.Dispose();
328             tlog.Debug(tag, $"ViewAccessibilityViewSetAccessibilityReadingInfoTypes END (OK)");
329         }
330
331         [Test]
332         [Category("P1")]
333         [Description("ViewAccessibility.View.NotifyAccessibilityStatesChange.")]
334         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.NotifyAccessibilityStatesChange M")]
335         [Property("SPEC_URL", "-")]
336         [Property("CRITERIA", "MR")]
337         [Property("AUTHOR", "guowei.wang@samsung.com")]
338         public void ViewAccessibilityViewNotifyAccessibilityStatesChange()
339         {
340             tlog.Debug(tag, $"ViewAccessibilityViewNotifyAccessibilityStatesChange START");
341
342             var testingTarget = new View()
343             {
344                 Size = new Size2D(100, 100),
345                 PositionUsesPivotPoint = true,
346                 ParentOrigin = ParentOrigin.TopCenter,
347                 PivotPoint = PivotPoint.TopCenter,
348                 BackgroundColor = Color.AquaMarine,
349             };
350             Assert.IsNotNull(testingTarget, "Can't create success object View");
351             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
352
353             testingTarget.NotifyAccessibilityStatesChange(new AccessibilityStates(AccessibilityState.Busy), AccessibilityStatesNotifyMode.Recursive);
354             var result = testingTarget.GetAccessibilityStates();
355             tlog.Debug(tag, "AccessibilityStates : " + result);
356
357             testingTarget.Dispose();
358             tlog.Debug(tag, $"ViewAccessibilityViewNotifyAccessibilityStatesChange END (OK)");
359         }
360
361         [Test]
362         [Category("P1")]
363         [Description("ViewAccessibility.View.RegisterDefaultLabel.")]
364         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.RegisterDefaultLabel M")]
365         [Property("SPEC_URL", "-")]
366         [Property("CRITERIA", "MR")]
367         [Property("AUTHOR", "guowei.wang@samsung.com")]
368         public void ViewAccessibilityRegisterDefaultLabel()
369         {
370             tlog.Debug(tag, $"ViewAccessibilityRegisterDefaultLabel START");
371
372             var testingTarget = new View()
373             {
374                 Size = new Size2D(100, 100),
375                 PositionUsesPivotPoint = true,
376                 ParentOrigin = ParentOrigin.TopCenter,
377                 PivotPoint = PivotPoint.TopCenter,
378                 BackgroundColor = Color.AquaMarine,
379             };
380             Assert.IsNotNull(testingTarget, "Can't create success object View");
381             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
382
383             try
384             {
385                 testingTarget.RegisterDefaultLabel();
386                 testingTarget.UnregisterDefaultLabel();
387             }
388             catch (Exception e)
389             {
390                 tlog.Debug(tag, e.Message.ToString());
391                 Assert.Fail("Caught Exception : Failed!");
392             }
393
394             testingTarget.Dispose();
395             tlog.Debug(tag, $"ViewAccessibilityRegisterDefaultLabel END (OK)");
396         }
397
398         [Test]
399         [Category("P1")]
400         [Description("ViewAccessibility.EmitAccessibilityEvent.")]
401         [Property("SPEC", "Tizen.NUI.ViewAccessibility.EmitAccessibilityEvent M")]
402         [Property("SPEC_URL", "-")]
403         [Property("CRITERIA", "MR")]
404         [Property("AUTHOR", "guowei.wang@samsung.com")]
405         public void ViewAccessibilityEmitAccessibilityEvent()
406         {
407             tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityEvent START");
408
409             var testingTarget = new View()
410             {
411                 Size = new Size2D(100, 100),
412                 PositionUsesPivotPoint = true,
413                 ParentOrigin = ParentOrigin.TopCenter,
414                 PivotPoint = PivotPoint.TopCenter,
415                 BackgroundColor = Color.AquaMarine,
416             };
417             Assert.IsNotNull(testingTarget, "Can't create success object View");
418             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
419
420             try
421             {
422                 testingTarget.EmitAccessibilityEvent(AccessibilityPropertyChangeEvent.Name);
423             }
424             catch (Exception e)
425             {
426                 tlog.Debug(tag, e.Message.ToString());
427                 Assert.Fail("Caught Exception : Failed!");
428             }
429
430             testingTarget.Dispose();
431             tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityEvent END (OK)");
432         }
433
434         [Test]
435         [Category("P1")]
436         [Description("ViewAccessibility.EmitAccessibilityStateChangedEvent.")]
437         [Property("SPEC", "Tizen.NUI.ViewAccessibility.EmitAccessibilityStateChangedEvent M")]
438         [Property("SPEC_URL", "-")]
439         [Property("CRITERIA", "MR")]
440         [Property("AUTHOR", "guowei.wang@samsung.com")]
441         public void ViewAccessibilityEmitAccessibilityStateChangedEvent()
442         {
443             tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityStateChangedEvent START");
444
445             var testingTarget = new CheckBox()
446             {
447                 Size = new Size2D(100, 100),
448                 IsSelectable = true,
449                 IsSelected = true,
450             };
451             Assert.IsNotNull(testingTarget, "Can't create success object CheckBox.");
452             Assert.IsInstanceOf<CheckBox>(testingTarget, "Should be an instance of CheckBox type.");
453
454             try
455             {
456                 testingTarget.EmitAccessibilityStateChangedEvent(AccessibilityState.Checked, true);
457             }
458             catch (Exception e)
459             {
460                 tlog.Debug(tag, e.Message.ToString());
461                 Assert.Fail("Caught Exception : Failed!");
462             }
463
464             testingTarget.Dispose();
465             tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityStateChangedEvent END (OK)");
466         }
467
468         [Test]
469         [Category("P1")]
470         [Description("ViewAccessibility.EmitTextInsertedEvent.")]
471         [Property("SPEC", "Tizen.NUI.ViewAccessibility.EmitTextInsertedEvent M")]
472         [Property("SPEC_URL", "-")]
473         [Property("CRITERIA", "MR")]
474         [Property("AUTHOR", "guowei.wang@samsung.com")]
475         public void ViewAccessibilityEmitTextInsertedEvent()
476         {
477             tlog.Debug(tag, $"ViewAccessibilityEmitTextInsertedEvent START");
478
479             var testingTarget = new TextLabel()
480             {
481                 Text = "InsertedEvent"
482             };
483             Assert.IsNotNull(testingTarget, "Can't create success object View");
484             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
485
486             try
487             {
488                 testingTarget.EmitTextInsertedEvent(0, 4, "test");
489                 testingTarget.EmitTextCursorMovedEvent(4);
490                 testingTarget.EmitTextDeletedEvent(0, 4, "test");
491             }
492             catch (Exception e)
493             {
494                 tlog.Debug(tag, e.Message.ToString());
495                 Assert.Fail("Caught Exception : Failed!");
496             }
497
498             testingTarget.Dispose();
499             tlog.Debug(tag, $"ViewAccessibilityEmitTextInsertedEvent END (OK)");
500         }
501     }
502 }