Release 8.0.0.15408
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Samples / Tizen.NUI.Samples / Samples / AddFrameRenderedCallbackTest.cs
1 
2 using global::System;
3 using Tizen.NUI;
4 using Tizen.NUI.BaseComponents;
5 using NUnit.Framework;
6 using System.Threading.Tasks;
7
8 namespace Tizen.NUI.Samples
9 {
10     using tlog = Tizen.Log;
11     public class AddFrameRenderedCallbackTest : IExample
12     {
13         const string tag = "NUITEST";
14
15         public void Activate()
16         {
17             test();
18         }
19         public void Deactivate()
20         {
21         }
22
23         Window win;
24         Window.FrameCallbackType cb;
25         void test()
26         {
27             win = NUIApplication.GetDefaultWindow();
28             win.TouchEvent += WinTouchEvent;
29             View view = new View();
30             view.Size = new Size(100, 100);
31             view.BackgroundColor = Color.Blue;
32             win.Add(view);
33
34             cb = testCallback;
35             win.AddFrameRenderedCallback(cb, 0);
36             win.AddFramePresentedCallback(cb, 0);
37
38             Timer timer = new Timer(5000);
39             timer.Tick += testOnTick;
40             timer.Start();
41         }
42
43         private void WinTouchEvent(object sender, Window.TouchEventArgs e)
44         {
45             win.AddFrameRenderedCallback(cb, cnt++);
46             Console.WriteLine($"testOnTick() AddFrameRenderedCallback() send id={cnt}");
47             win.AddFramePresentedCallback(cb, cnt++);
48             Console.WriteLine($"testOnTick() AddFramePresentedCallback() send id={cnt}");
49         }
50
51         int cnt;
52         bool testOnTick(object o, Timer.TickEventArgs e)
53         {
54             win.AddFrameRenderedCallback(cb, cnt++);
55             Console.WriteLine($"testOnTick() AddFrameRenderedCallback() send id={cnt}");
56             win.AddFramePresentedCallback(cb, cnt++);
57             Console.WriteLine($"testOnTick() AddFramePresentedCallback() send id={cnt}");
58             return true;
59         }
60
61         void testCallback(int id)
62         {
63             Console.WriteLine($"testCallback() id={id}");
64         }
65
66
67         [Test]
68         public async Task Test_AddFrameRenderedCallback()
69         {
70             var isCalled = false;
71             Tizen.NUI.Window.FrameCallbackType callback = (int id) =>
72             {
73                 isCalled = true;
74             };
75
76             win.AddFrameRenderedCallback(callback, 0);
77
78             await Task.Delay(500);
79
80             Assert.IsTrue(isCalled, "isCalled should be true");
81         }
82         [Test]
83         public async Task Test_AddFramePresentedCallback()
84         {
85             var isCalled = false;
86             Tizen.NUI.Window.FrameCallbackType callback = (int id) =>
87             {
88                 isCalled = true;
89             };
90
91             win.AddFramePresentedCallback(callback, 0);
92
93             await Task.Delay(500);
94
95             Assert.IsTrue(isCalled, "isCalled should be true");
96         }
97
98         [Test]
99         public void Test_AddFrameRenderedCallbackNegative()
100         {
101             try
102             {
103                 win.AddFrameRenderedCallback(null, 0);
104             }
105             catch (Exception ex)
106             {
107                 if (ex is ArgumentNullException)
108                 {
109                     Assert.Pass();
110                 }
111                 else
112                 {
113                     Assert.Fail("ArgumentNullException should occur");
114                 }
115             }
116         }
117
118         [Test]
119         public void Test_AddFramePresentedCallbackNegative()
120         {
121             try
122             {
123                 win.AddFramePresentedCallback(null, 0);
124             }
125             catch (Exception ex)
126             {
127                 if (ex is ArgumentNullException)
128                 {
129                     Assert.Pass();
130                 }
131                 else
132                 {
133                     Assert.Fail("ArgumentNullException should occur");
134                 }
135             }
136         }
137         [Test]
138         public async Task Test_AddFrameRenderedCallbackId()
139         {
140             var checkId = -1;
141             Tizen.NUI.Window.FrameCallbackType callback = (int id) =>
142             {
143                 checkId = id;
144             };
145
146             var testId = 9;
147             win.AddFrameRenderedCallback(callback, testId);
148
149             await Task.Delay(500);
150
151             Assert.AreEqual(testId, checkId, "should be same");
152         }
153
154         [Test]
155         public async Task Test_AddFramePresentedCallbackId()
156         {
157             var checkId = -1;
158             Tizen.NUI.Window.FrameCallbackType callback = (int id) =>
159             {
160                 checkId = id;
161             };
162
163             var testId = 7;
164             win.AddFramePresentedCallback(callback, testId);
165
166             await Task.Delay(500);
167
168             Assert.AreEqual(testId, checkId, "should be same");
169         }
170     }
171 }