7e7b3a9cdbc6a1b5e5637e918bf15973c762247d
[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
139             try
140             {
141                 testingTarget.RemoveAccessibilityAttributes("view");
142             }
143             catch (Exception e)
144             {
145                 tlog.Debug(tag, e.Message.ToString());
146                 Assert.Fail("Caught Exception: Failed!");
147             }
148
149             Assert.IsEmpty(testingTarget.GetAccessibilityAttributes("view"));
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             Assert.IsEmpty(testingTarget.GetAccessibilityAttributes("view"));
183
184             testingTarget.Dispose();
185             tlog.Debug(tag, $"ViewAccessibilityViewClearAccessibilityAttributes END (OK)");
186         }
187
188         [Test]
189         [Category("P1")]
190         [Description("ViewAccessibility.View.ClearAccessibilityHighlight.")]
191         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.ClearAccessibilityHighlight M")]
192         [Property("SPEC_URL", "-")]
193         [Property("CRITERIA", "MR")]
194         [Property("AUTHOR", "guowei.wang@samsung.com")]
195         public void ViewAccessibilityViewClearAccessibilityHighlight()
196         {
197             tlog.Debug(tag, $"ViewAccessibilityViewClearAccessibilityHighlight START");
198
199             var testingTarget = new View();
200             Assert.IsNotNull(testingTarget, "Can't create success object View");
201             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
202
203             testingTarget.AccessibilityHighlightable = true;
204
205             try
206             {
207                 var result = testingTarget.ClearAccessibilityHighlight();
208                 tlog.Debug(tag, "ClearAccessibilityHighlight : " + result);
209
210                 result = testingTarget.GrabAccessibilityHighlight();
211                 tlog.Debug(tag, "GrabAccessibilityHighlight : " + result);
212             }
213             catch (Exception e)
214             {
215                 tlog.Debug(tag, e.Message.ToString());
216                 Assert.Fail("Caught Exception: Failed!");
217             }
218
219             testingTarget.Dispose();
220             tlog.Debug(tag, $"ViewAccessibilityViewClearAccessibilityHighlight END (OK)");
221         }
222
223         [Test]
224         [Category("P1")]
225         [Description("ViewAccessibility.View.AppendAccessibilityRelation.")]
226         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.AppendAccessibilityRelation M")]
227         [Property("SPEC_URL", "-")]
228         [Property("CRITERIA", "MR")]
229         [Property("AUTHOR", "guowei.wang@samsung.com")]
230         public void ViewAccessibilityViewAppendAccessibilityRelation()
231         {
232             tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelation START");
233
234             var testingTarget = new View()
235             {
236                 Size = new Size2D(100, 100),
237                 PositionUsesPivotPoint = true,
238                 ParentOrigin = ParentOrigin.TopCenter,
239                 PivotPoint = PivotPoint.TopCenter,
240                 BackgroundColor = Color.AquaMarine,
241             };
242             Assert.IsNotNull(testingTarget, "Can't create success object View");
243             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
244
245             using (View child = new View())
246             {
247                 try
248                 {
249                     testingTarget.AppendAccessibilityRelation(child, AccessibilityRelationType.MemberOf);
250                     var result = testingTarget.GetAccessibilityRelations();
251                     tlog.Debug(tag, "AccessibilityRelations : " + result);
252
253                     testingTarget.RemoveAccessibilityRelation(child, AccessibilityRelationType.MemberOf);
254                     testingTarget.ClearAccessibilityRelations();
255                 }
256                 catch (Exception e)
257                 {
258                     tlog.Debug(tag, e.Message.ToString());
259                     Assert.Fail("Caught Exception : Failed!");
260                 }
261             }
262
263             testingTarget.Dispose();
264             tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelation END (OK)");
265         }
266
267         [Test]
268         [Category("P2")]
269         [Description("ViewAccessibility.View.AppendAccessibilityRelation.")]
270         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.AppendAccessibilityRelation M")]
271         [Property("SPEC_URL", "-")]
272         [Property("CRITERIA", "MR")]
273         [Property("AUTHOR", "guowei.wang@samsung.com")]
274         public void ViewAccessibilityViewAppendAccessibilityRelationNullValue()
275         {
276             tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelationNullValue START");
277
278             var testingTarget = new View()
279             {
280                 Size = new Size2D(100, 100),
281                 PositionUsesPivotPoint = true,
282                 ParentOrigin = ParentOrigin.TopCenter,
283                 PivotPoint = PivotPoint.TopCenter,
284                 BackgroundColor = Color.AquaMarine,
285             };
286             Assert.IsNotNull(testingTarget, "Can't create success object View");
287             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
288
289             View child = null;
290             try
291             {
292                 testingTarget.AppendAccessibilityRelation(child, AccessibilityRelationType.MemberOf);
293             }
294             catch (ArgumentNullException)
295             {
296                 testingTarget.Dispose();
297                 tlog.Debug(tag, $"ViewAccessibilityViewAppendAccessibilityRelationNullValue END (OK)");
298                 Assert.Pass("Caught ArgumentNullException : Passed!");
299             }
300         }
301
302         [Test]
303         [Category("P1")]
304         [Description("ViewAccessibility.View.SetAccessibilityReadingInfoTypes.")]
305         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.SetAccessibilityReadingInfoTypes M")]
306         [Property("SPEC_URL", "-")]
307         [Property("CRITERIA", "MR")]
308         [Property("AUTHOR", "guowei.wang@samsung.com")]
309         public void ViewAccessibilityViewSetAccessibilityReadingInfoTypes()
310         {
311             tlog.Debug(tag, $"ViewAccessibilityViewSetAccessibilityReadingInfoTypes START");
312
313             var testingTarget = new View()
314             {
315                 Size = new Size2D(100, 100),
316                 PositionUsesPivotPoint = true,
317                 ParentOrigin = ParentOrigin.TopCenter,
318                 PivotPoint = PivotPoint.TopCenter,
319                 BackgroundColor = Color.AquaMarine,
320             };
321             Assert.IsNotNull(testingTarget, "Can't create success object View");
322             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
323
324
325             testingTarget.SetAccessibilityReadingInfoTypes(AccessibilityReadingInfoTypes.Description);
326             var result = testingTarget.GetAccessibilityReadingInfoTypes();
327             tlog.Debug(tag, "AccessibilityReadingInfoTypes : " + result);
328
329             testingTarget.Dispose();
330             tlog.Debug(tag, $"ViewAccessibilityViewSetAccessibilityReadingInfoTypes END (OK)");
331         }
332
333         [Test]
334         [Category("P1")]
335         [Description("ViewAccessibility.View.NotifyAccessibilityStatesChange.")]
336         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.NotifyAccessibilityStatesChange M")]
337         [Property("SPEC_URL", "-")]
338         [Property("CRITERIA", "MR")]
339         [Property("AUTHOR", "guowei.wang@samsung.com")]
340         public void ViewAccessibilityViewNotifyAccessibilityStatesChange()
341         {
342             tlog.Debug(tag, $"ViewAccessibilityViewNotifyAccessibilityStatesChange START");
343
344             var testingTarget = new View()
345             {
346                 Size = new Size2D(100, 100),
347                 PositionUsesPivotPoint = true,
348                 ParentOrigin = ParentOrigin.TopCenter,
349                 PivotPoint = PivotPoint.TopCenter,
350                 BackgroundColor = Color.AquaMarine,
351             };
352             Assert.IsNotNull(testingTarget, "Can't create success object View");
353             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
354
355             testingTarget.NotifyAccessibilityStatesChange(new AccessibilityStates(AccessibilityState.Busy), AccessibilityStatesNotifyMode.Recursive);
356             var result = testingTarget.GetAccessibilityStates();
357             tlog.Debug(tag, "AccessibilityStates : " + result);
358
359             testingTarget.Dispose();
360             tlog.Debug(tag, $"ViewAccessibilityViewNotifyAccessibilityStatesChange END (OK)");
361         }
362
363         [Test]
364         [Category("P1")]
365         [Description("ViewAccessibility.View.RegisterDefaultLabel.")]
366         [Property("SPEC", "Tizen.NUI.ViewAccessibility.View.RegisterDefaultLabel M")]
367         [Property("SPEC_URL", "-")]
368         [Property("CRITERIA", "MR")]
369         [Property("AUTHOR", "guowei.wang@samsung.com")]
370         public void ViewAccessibilityRegisterDefaultLabel()
371         {
372             tlog.Debug(tag, $"ViewAccessibilityRegisterDefaultLabel START");
373
374             var testingTarget = new View()
375             {
376                 Size = new Size2D(100, 100),
377                 PositionUsesPivotPoint = true,
378                 ParentOrigin = ParentOrigin.TopCenter,
379                 PivotPoint = PivotPoint.TopCenter,
380                 BackgroundColor = Color.AquaMarine,
381             };
382             Assert.IsNotNull(testingTarget, "Can't create success object View");
383             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
384
385             try
386             {
387                 testingTarget.RegisterDefaultLabel();
388                 testingTarget.UnregisterDefaultLabel();
389             }
390             catch (Exception e)
391             {
392                 tlog.Debug(tag, e.Message.ToString());
393                 Assert.Fail("Caught Exception : Failed!");
394             }
395
396             testingTarget.Dispose();
397             tlog.Debug(tag, $"ViewAccessibilityRegisterDefaultLabel END (OK)");
398         }
399
400         [Test]
401         [Category("P1")]
402         [Description("ViewAccessibility.EmitAccessibilityEvent.")]
403         [Property("SPEC", "Tizen.NUI.ViewAccessibility.EmitAccessibilityEvent M")]
404         [Property("SPEC_URL", "-")]
405         [Property("CRITERIA", "MR")]
406         [Property("AUTHOR", "guowei.wang@samsung.com")]
407         public void ViewAccessibilityEmitAccessibilityEvent()
408         {
409             tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityEvent START");
410
411             var testingTarget = new View()
412             {
413                 Size = new Size2D(100, 100),
414                 PositionUsesPivotPoint = true,
415                 ParentOrigin = ParentOrigin.TopCenter,
416                 PivotPoint = PivotPoint.TopCenter,
417                 BackgroundColor = Color.AquaMarine,
418             };
419             Assert.IsNotNull(testingTarget, "Can't create success object View");
420             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
421
422             try
423             {
424                 testingTarget.EmitAccessibilityEvent(AccessibilityPropertyChangeEvent.Name);
425             }
426             catch (Exception e)
427             {
428                 tlog.Debug(tag, e.Message.ToString());
429                 Assert.Fail("Caught Exception : Failed!");
430             }
431
432             testingTarget.Dispose();
433             tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityEvent END (OK)");
434         }
435
436         [Test]
437         [Category("P1")]
438         [Description("ViewAccessibility.EmitAccessibilityStateChangedEvent.")]
439         [Property("SPEC", "Tizen.NUI.ViewAccessibility.EmitAccessibilityStateChangedEvent M")]
440         [Property("SPEC_URL", "-")]
441         [Property("CRITERIA", "MR")]
442         [Property("AUTHOR", "guowei.wang@samsung.com")]
443         public void ViewAccessibilityEmitAccessibilityStateChangedEvent()
444         {
445             tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityStateChangedEvent START");
446
447             var testingTarget = new CheckBox()
448             {
449                 Size = new Size2D(100, 100),
450                 IsSelectable = true,
451                 IsSelected = true,
452             };
453             Assert.IsNotNull(testingTarget, "Can't create success object CheckBox.");
454             Assert.IsInstanceOf<CheckBox>(testingTarget, "Should be an instance of CheckBox type.");
455
456             try
457             {
458                 testingTarget.EmitAccessibilityStateChangedEvent(AccessibilityState.Checked, true);
459             }
460             catch (Exception e)
461             {
462                 tlog.Debug(tag, e.Message.ToString());
463                 Assert.Fail("Caught Exception : Failed!");
464             }
465
466             testingTarget.Dispose();
467             tlog.Debug(tag, $"ViewAccessibilityEmitAccessibilityStateChangedEvent END (OK)");
468         }
469
470         [Test]
471         [Category("P1")]
472         [Description("ViewAccessibility.EmitTextInsertedEvent.")]
473         [Property("SPEC", "Tizen.NUI.ViewAccessibility.EmitTextInsertedEvent M")]
474         [Property("SPEC_URL", "-")]
475         [Property("CRITERIA", "MR")]
476         [Property("AUTHOR", "guowei.wang@samsung.com")]
477         public void ViewAccessibilityEmitTextInsertedEvent()
478         {
479             tlog.Debug(tag, $"ViewAccessibilityEmitTextInsertedEvent START");
480
481             var testingTarget = new TextLabel()
482             {
483                 Text = "InsertedEvent"
484             };
485             Assert.IsNotNull(testingTarget, "Can't create success object View");
486             Assert.IsInstanceOf<View>(testingTarget, "Should be an instance of View type.");
487
488             try
489             {
490                 testingTarget.EmitTextInsertedEvent(0, 4, "test");
491                 testingTarget.EmitTextCursorMovedEvent(4);
492                 testingTarget.EmitTextDeletedEvent(0, 4, "test");
493             }
494             catch (Exception e)
495             {
496                 tlog.Debug(tag, e.Message.ToString());
497                 Assert.Fail("Caught Exception : Failed!");
498             }
499
500             testingTarget.Dispose();
501             tlog.Debug(tag, $"ViewAccessibilityEmitTextInsertedEvent END (OK)");
502         }
503     }
504 }