9981fb12a9ee4fbeb9a11ffcfcc509789d29cc0f
[test/tct/csharp/api.git] /
1 using System;
2 using Tizen.NUI;
3 using Tizen.NUI.BaseComponents;
4 using Tizen.NUI.UIComponents;
5 using Tizen.Applications;
6
7 namespace WidgetViewSample
8 {
9     class Program : NUIApplication
10     {
11         private WidgetViewManager _viewManager = null;
12         private WidgetView _widgetView = null;
13         private PushButton _widgetAddBtn = null;
14         private PushButton _widgetDeleteBtn = null;
15         private PushButton _widgetPauseBtn = null;
16         private PushButton _widgetResumeBtn = null;
17         private PushButton _widgetResizeBtn = null;
18         private PushButton _widgetExitBtn = null;
19
20         private Window _window = null;
21         private float _pointSize = 4.0f;
22         private View _buttons = null;
23
24         protected override void OnCreate()
25         {
26             base.OnCreate();
27             Initialize();
28         }
29
30         void Initialize()
31         {
32             _window = Window.Instance;
33             _window.BackgroundColor = Color.Black;
34             Tizen.Log.Fatal("NUIWidget", "ApplicationID: " + ApplicationInfo.ApplicationId);
35
36             _viewManager = new WidgetViewManager(this, ApplicationInfo.ApplicationId);
37
38             _buttons = new View();
39             _buttons.Size2D = new Size2D(220, 60);
40             _buttons.Position2D = new Position2D(0, 200);
41             _buttons.ParentOrigin = ParentOrigin.TopLeft;
42             _buttons.PivotPoint = PivotPoint.TopLeft;
43
44             _window.Add(_buttons);
45
46             _widgetAddBtn = new PushButton();
47             _widgetAddBtn.Label = CreateTextMap(_pointSize, "Add");
48             _widgetAddBtn.Size2D = new Size2D(80, 30);
49             _widgetAddBtn.Position2D = new Position2D(-60, 0);
50             _widgetAddBtn.Clicked += OnAddBtnClicked;
51             _buttons.Add(_widgetAddBtn);
52             Tizen.Log.Fatal("NUIWidget", "Add button add");
53
54             _widgetDeleteBtn = new PushButton();
55             _widgetDeleteBtn.Label = CreateTextMap(_pointSize, "Delete");
56             _widgetDeleteBtn.Size2D = new Size2D(80, 30);
57             _widgetDeleteBtn.Position2D = new Position2D(-40, 52);
58             _widgetDeleteBtn.Clicked += OnDeleteBtnClicked;
59             _buttons.Add(_widgetDeleteBtn);
60             Tizen.Log.Fatal("NUIWidget", "Add button delete");
61
62             _widgetPauseBtn = new PushButton();
63             _widgetPauseBtn.Label = CreateTextMap(_pointSize, "Pause");
64             _widgetPauseBtn.Size2D = new Size2D(80, 30);
65             _widgetPauseBtn.Position2D = new Position2D(35, 0);
66             _widgetPauseBtn.Focusable = true;
67             _widgetPauseBtn.Clicked += OnPauseBtnClicked;
68             _buttons.Add(_widgetPauseBtn);
69             Tizen.Log.Fatal("NUIWidget", "Add button pause");
70
71             _widgetResumeBtn = new PushButton();
72             _widgetResumeBtn.Label = CreateTextMap(_pointSize, "Resume");
73             _widgetResumeBtn.Size2D = new Size2D(80, 30);
74             _widgetResumeBtn.Position2D = new Position2D(130, 0);
75             _widgetResumeBtn.Focusable = true;
76             _widgetResumeBtn.Clicked += OnResumeBtnClicked;
77             _buttons.Add(_widgetResumeBtn);
78             Tizen.Log.Fatal("NUIWidget", "Add button resume");
79
80             _widgetResizeBtn = new PushButton();
81             _widgetResizeBtn.Label = CreateTextMap(_pointSize, "Resize");
82             _widgetResizeBtn.Size2D = new Size2D(80, 30);
83             _widgetResizeBtn.Position2D = new Position2D(50, 52);
84             _widgetResizeBtn.Focusable = true;
85             _widgetResizeBtn.Clicked += OnResizeBtnClicked;
86             _buttons.Add(_widgetResizeBtn);
87             Tizen.Log.Fatal("NUIWidget", "Add button resume");
88
89             _widgetExitBtn = new PushButton();
90             _widgetExitBtn.Label = CreateTextMap(_pointSize, "Exit");
91             _widgetExitBtn.Size2D = new Size2D(80, 30);
92             _widgetExitBtn.Position2D = new Position2D(140, 52);
93             _widgetExitBtn.Focusable = true;
94             _widgetExitBtn.Clicked += OnExitBtnClicked;
95             _buttons.Add(_widgetExitBtn);
96
97             Window.Instance.KeyEvent += AppBack;
98         }
99
100         public override void Exit()
101         {
102             _widgetExitBtn.Clicked -= OnExitBtnClicked;
103             Window.Instance.KeyEvent -= AppBack;
104             base.Exit();
105         }
106
107         /// <summary>
108         /// This Application will be exited when back key entered.
109         /// </summary>
110         /// <param name="source">Window.Instance</param>
111         /// <param name="e">event</param>
112         private void AppBack(object source, Window.KeyEventArgs e)
113         {
114             if (e.Key.State == Key.StateType.Down)
115             {
116                 Tizen.Log.Info("Key", e.Key.KeyPressedName);
117                 if (e.Key.KeyPressedName == "XF86Back")
118                 {
119                     this.Exit();
120                 }
121             }
122         }
123         private PropertyMap CreateTextMap(float pointSize, string text)
124         {
125             PropertyMap map = new PropertyMap();
126             map.Insert(Visual.Property.Type, new PropertyValue((int)Visual.Type.Text));
127             map.Insert((int)TextVisualProperty.Text, new PropertyValue(text));
128             map.Insert((int)TextVisualProperty.PointSize, new PropertyValue(pointSize));
129             map.Insert((int)TextVisualProperty.VerticalAlignment, new PropertyValue("BOTTOM"));
130             return map;
131         }
132
133         private bool IsEmulator()
134         {
135             string value;
136             var result = Tizen.System.Information.TryGetValue("tizen.org/system/model_name", out value);
137             if (result && value.Equals("Emulator"))
138             {
139                 return true;
140             }
141
142             return false;
143         }
144
145         private bool OnAddBtnClicked(object source, EventArgs e)
146         {
147             if (_widgetView == null)
148             {
149                 Tizen.Log.Fatal("NUIWidget", "Widget view will creat!");
150                 Bundle bundle = new Bundle();
151                 bundle.AddItem("ImageIdx", "1");
152                 string content = bundle.Encode();
153                 Tizen.Log.Fatal("NUIWidget", "Will send content string " + content);
154
155                 _widgetView = new WidgetView("test", "test", 100, 100, 0);
156                 if (_widgetView != null) { Tizen.Log.Error("TCT", "[TestCase][WidgetView][WidgetView] Pass"); }
157                 else { Tizen.Log.Error("TCT", "[TestCase][WidgetView][WidgetView] Fail"); }
158                 _widgetView = null;
159
160                 if (_viewManager) { Tizen.Log.Error("TCT", "[TestCase][WidgetViewManager][WidgetViewManager] Pass"); }
161                 else { Tizen.Log.Error("TCT", "[TestCase][WidgetViewManager][WidgetViewManager] Fail"); }
162
163                 _widgetView = _viewManager.AddWidget("org.tizen.example.WidgetApplicationWearableSample", content, 360, 130, 0);
164                 if (_widgetView) { Tizen.Log.Error("TCT", "[TestCase][AddWidget][WidgetViewManager] Pass"); }
165                 else { Tizen.Log.Error("TCT", "[TestCase][AddWidget][WidgetViewManager] Fail"); }
166
167                 _widgetView.WidgetContentUpdated += OnWidgetContentUpdated;
168                 _widgetView.Size2D = new Size2D(360, 130);
169                 _widgetView.ParentOrigin = ParentOrigin.TopLeft;
170                 _widgetView.PivotPoint = PivotPoint.TopLeft;
171                 _widgetView.Position2D = new Position2D(0, 50);
172                 _widgetView.PositionUsesPivotPoint = true;
173                 _window.Add(_widgetView);
174
175                 _widgetView.Size2D = new Size2D(360, 130);
176
177                 Tizen.Log.Fatal("NUIWidget", "widget view WidgetID: " + _widgetView.WidgetID);
178                 if (_widgetView.WidgetID == "org.tizen.example.WidgetApplicationWearableSample") { Tizen.Log.Error("TCT", "[TestCase][WidgetID][WidgetView] Pass"); }
179                 else { Tizen.Log.Error("TCT", "[TestCase][WidgetID][WidgetView] Fail"); }
180
181                 Tizen.Log.Fatal("NUIWidget", "widget view InstanceID: " + _widgetView.InstanceID);
182                 if (_widgetView.InstanceID != "") { Tizen.Log.Error("TCT", "[TestCase][InstanceID][WidgetView] Pass"); }
183                 else { Tizen.Log.Error("TCT", "[TestCase][InstanceID][WidgetView] Fail"); }
184
185                 Tizen.Log.Fatal("NUIWidget", "widget view ContentInfo: " + _widgetView.ContentInfo);
186                 if (_widgetView.ContentInfo != "") { Tizen.Log.Error("TCT", "[TestCase][ContentInfo][WidgetView] Pass"); }
187                 else { Tizen.Log.Error("TCT", "[TestCase][ContentInfo][WidgetView] Fail"); }
188
189                 Tizen.Log.Fatal("NUIWidget", "widget view Title: " + _widgetView.Title);
190                 if (_widgetView.Title == "WidgetApplicationWearableSample") { Tizen.Log.Error("TCT", "[TestCase][Title][WidgetView] Pass"); }
191                 else { Tizen.Log.Error("TCT", "[TestCase][Title][WidgetView] Fail"); }
192
193                 Tizen.Log.Fatal("NUIWidget", "widget view UpdatePeriod: " + _widgetView.UpdatePeriod);
194                 if (_widgetView.UpdatePeriod == 0) { Tizen.Log.Error("TCT", "[TestCase][UpdatePeriod][WidgetView] Pass"); }
195                 else { Tizen.Log.Error("TCT", "[TestCase][UpdatePeriod][WidgetView] Fail"); }
196
197                 Tizen.Log.Fatal("NUIWidget", "widget view LoadingText: " + _widgetView.LoadingText);
198                 if (_widgetView.LoadingText == true) { Tizen.Log.Error("TCT", "[TestCase][LoadingText][WidgetView] Pass"); }
199                 else { Tizen.Log.Error("TCT", "[TestCase][LoadingText][WidgetView] Fail"); }
200                 PropertyMap retryText = new PropertyMap();
201                 retryText.Add("stateText", new PropertyValue("RetryTextTest"));
202                 _widgetView.RetryText = retryText;
203                 Tizen.Log.Fatal("NUIWidget", "widget view set retryText: RetryTextTest");
204
205                 PropertyMap getRetryText = _widgetView.RetryText;
206                 if (getRetryText != null) { Tizen.Log.Error("TCT", "[TestCase][RetryText][WidgetView] Pass"); }
207                 else { Tizen.Log.Error("TCT", "[TestCase][RetryText][WidgetView] Fail"); }
208
209                 PropertyMap effect = new PropertyMap();
210                 retryText.Add("shader", new PropertyValue("ShaderText"));
211                 _widgetView.Effect = effect;
212                 Tizen.Log.Fatal("NUIWidget", "widget view set effect: ShaderText");
213
214                 PropertyMap getEffect = _widgetView.Effect;
215                 if (getEffect != null) { Tizen.Log.Error("TCT", "[TestCase][Effect][WidgetView] Pass"); }
216                 else { Tizen.Log.Error("TCT", "[TestCase][Effect][WidgetView] Fail"); }
217
218                 AddEventHandler();
219             }
220             Tizen.Log.Fatal("NUIWidget", "Widget view has been created!");
221
222             return true;
223         }
224
225         private void OnWidgetContentUpdated(object sender, WidgetView.WidgetViewEventArgs e)
226         {
227             Tizen.Log.Fatal("NUIWidget", "Widget view content updated triggered");
228             Tizen.Log.Error("TCT", "[TestCase][WidgetContentUpdated][WidgetView] Pass");
229
230             string updatedContent = e.WidgetView.ContentInfo;
231             Bundle content = Bundle.Decode(updatedContent);
232             string imageIdx = Convert.ToString(content.GetItem("ImageIdx"));
233
234             Tizen.Log.Fatal("NUIWidget", "Get content string " + imageIdx);
235         }
236
237         private bool OnDeleteBtnClicked(object source, EventArgs e)
238         {
239             if (_widgetView != null)
240             {
241                 bool ret = _widgetView.PermanentDelete;
242                 if (ret == false) { Tizen.Log.Error("TCT", "[TestCase][PermanentDelete][WidgetView] Pass"); }
243                 else { Tizen.Log.Error("TCT", "[TestCase][PermanentDelete][WidgetView] Fail"); }
244
245                 ret = _widgetView.CancelTouchEvent();
246                 if (ret) { Tizen.Log.Error("TCT", "[TestCase][CancelTouchEvent][WidgetView] Pass"); }
247                 else { Tizen.Log.Error("TCT", "[TestCase][CancelTouchEvent][WidgetView] Fail"); }
248                 _window.Remove(_widgetView);
249
250                 ret = _widgetView.TerminateWidget();
251                 if (ret) { Tizen.Log.Error("TCT", "[TestCase][TerminateWidget][WidgetView] Pass"); }
252                 else { Tizen.Log.Error("TCT", "[TestCase][TerminateWidget][WidgetView] Fail"); }
253
254                 _widgetView.Dispose();
255                 _widgetView = null;
256             }
257             Tizen.Log.Fatal("NUIWidget", "Widget view has been removed!");
258             return true;
259         }
260
261         private bool OnResumeBtnClicked(object source, EventArgs e)
262         {
263             if (_widgetView != null)
264             {
265                 bool ret = _widgetView.ResumeWidget();
266                 if (ret) { Tizen.Log.Error("TCT", "[TestCase][ResumeWidget][WidgetView] Pass"); }
267                 else { Tizen.Log.Error("TCT", "[TestCase][ResumeWidget][WidgetView] Fail"); }
268
269                 try
270                 {
271                     _widgetView.ActivateFaultedWidget();
272                 }
273                 catch (Exception exception)
274                 {
275                     Tizen.Log.Error("TCT", "[TestCase] Caught Exception" + exception.ToString());
276                     Tizen.Log.Error("TCT", "[TestCase][ActivateFaultedWidget][WidgetView] Fail");
277                 }
278                 Tizen.Log.Error("TCT", "[TestCase][ActivateFaultedWidget][WidgetView] Pass");
279
280                 ret = _widgetView.Preview;
281                 if (ret) { Tizen.Log.Error("TCT", "[TestCase][Preview][WidgetView] Pass"); }
282                 else { Tizen.Log.Error("TCT", "[TestCase][Preview][WidgetView] Fail"); }
283
284                 ret = _widgetView.WidgetStateFaulted;
285                 if (!ret) { Tizen.Log.Error("TCT", "[TestCase][WidgetStateFaulted][WidgetView] Pass"); }
286                 else { Tizen.Log.Error("TCT", "[TestCase][WidgetStateFaulted][WidgetView] Fail"); }
287             }
288             Tizen.Log.Fatal("NUIWidget", "Widget view has been resumed!");
289             return true;
290         }
291
292         private bool OnPauseBtnClicked(object source, EventArgs e)
293         {
294             if (_widgetView != null)
295             {
296                 bool ret = _widgetView.PauseWidget();
297                 if (ret) { Tizen.Log.Error("TCT", "[TestCase][PauseWidget][WidgetView] Pass"); }
298                 else { Tizen.Log.Error("TCT", "[TestCase][PauseWidget][WidgetView] Fail"); }
299             }
300             Tizen.Log.Fatal("NUIWidget", "Widget view has been paused!");
301             return true;
302         }
303
304         private bool OnResizeBtnClicked(object source, EventArgs e)
305         {
306             if (_widgetView != null)
307             {
308                 _widgetView.Size2D = new Size2D(360, 80);
309             }
310             Tizen.Log.Fatal("NUIWidget", "Widget view has been resized!");
311
312             return true;
313         }
314
315         private bool OnExitBtnClicked(object source, EventArgs e)
316         {
317             Exit();
318             return true;
319         }
320         private void AddEventHandler()
321         {
322             if (_widgetView != null)
323             {
324                 _widgetView.WidgetAdded += (src, arg) => {
325                     Tizen.Log.Fatal("NUIWidget", "Widget view added triggered");
326                     Tizen.Log.Error("TCT", "[TestCase][WidgetAdded][WidgetView] Pass");
327                     if (arg != null)
328                     {
329                         Tizen.Log.Error("TCT", "[TestCase][WidgetViewEventArgs][WidgetView] Pass");
330                         if (arg.WidgetView != null) { Tizen.Log.Error("TCT", "[TestCase][WidgetViewEventArgs.WidgetView][WidgetView] Pass"); }
331                         else { Tizen.Log.Error("TCT", "[TestCase][WidgetViewEventArgs.WidgetView][WidgetView] Fail"); }
332                     }
333                     else
334                     {
335                         Tizen.Log.Error("TCT", "[TestCase][WidgetViewEventArgs][WidgetView] Fail");
336                     }
337                 };
338
339                 _widgetView.WidgetDeleted += (src, arg) => {
340                     Tizen.Log.Fatal("NUIWidget", "Widget view deleted triggered");
341                     Tizen.Log.Error("TCT", "[TestCase][WidgetDeleted][WidgetView] Pass");
342                 };
343
344                 _widgetView.WidgetCreationAborted += (src, arg) => {
345                     Tizen.Log.Fatal("NUIWidget", "Widget view creation aborted triggered");
346                 };
347
348
349                 _widgetView.WidgetUpdatePeriodChanged += (src, arg) => {
350                     Tizen.Log.Fatal("NUIWidget", "Widget view update periodChanged triggered");
351                     Tizen.Log.Error("TCT", "[TestCase][WidgetUpdatePeriodChanged][WidgetView] Pass");
352                 };
353
354                 _widgetView.WidgetFaulted += (src, arg) => {
355                     Tizen.Log.Fatal("NUIWidget", "Widget view faulted triggered");
356                     Tizen.Log.Error("TCT", "[TestCase][WidgetFaulted][WidgetView] Pass");
357                 };
358             }
359         }
360
361         static void Main(string[] args)
362         {
363             var app = new Program();
364             app.Run(args);
365         }
366     }
367 }