Add BoxLayout TC
authorSeungkeun Lee <sngn.lee@samsung.com>
Mon, 26 Sep 2016 23:59:45 +0000 (08:59 +0900)
committerSeungkeun Lee <sngn.lee@samsung.com>
Mon, 26 Sep 2016 23:59:45 +0000 (08:59 +0900)
Change-Id: I83ca9c8a12e4cd4fc0e714ee68e4f8f4aeac977d

test/ElmSharp.Test/ElmSharp.Test.csproj
test/ElmSharp.Test/TC/BoxLayoutTest1.cs [new file with mode: 0644]
test/ElmSharp.Test/TC/IndexTest1.cs

index 4dbd9e0..02c92a5 100644 (file)
@@ -43,6 +43,7 @@
     <Compile Include="TC\BackgroundTest1.cs" />\r
     <Compile Include="TC\BackgroundTest2.cs" />\r
     <Compile Include="TC\BackgroundTest3.cs" />\r
+    <Compile Include="TC\BoxLayoutTest1.cs" />\r
     <Compile Include="TC\BoxTest1.cs" />\r
     <Compile Include="TC\ButtonTest1.cs" />\r
     <Compile Include="TC\CalendarTest1.cs" />\r
diff --git a/test/ElmSharp.Test/TC/BoxLayoutTest1.cs b/test/ElmSharp.Test/TC/BoxLayoutTest1.cs
new file mode 100644 (file)
index 0000000..e08df62
--- /dev/null
@@ -0,0 +1,96 @@
+using System;
+using System.Linq;
+
+namespace ElmSharp.Test
+{
+    public class BoxLayoutTest1 : TestCaseBase
+    {
+        public override string TestName => "BoxLayoutTest1";
+        public override string TestDescription => "Box Layout callback test";
+
+        Naviframe _navi;
+        int _sequence = 0;
+
+        public override void Run(Window window)
+        {
+            Conformant conformant = new Conformant(window);
+            conformant.Show();
+
+            Naviframe navi = new Naviframe(window)
+            {
+                PreserveContentOnPop = true,
+                DefaultBackButtonEnabled = true
+            };
+            _navi = navi;
+
+            navi.Popped += (s, e) =>
+            {
+                Console.WriteLine("----- Naviframe was popped {0:x} ", (int)(IntPtr)e.Content);
+            };
+
+            navi.Push(CreatePage(window), "0 Page");
+            navi.Show();
+            conformant.SetContent(navi);
+        }
+
+        EvasObject CreatePage(Window parent)
+        {
+            Box box = new Box(parent);
+            box.Show();
+
+            Label label = new Label(parent)
+            {
+                Text = string.Format("{0} Page", _sequence++),
+                WeightX = 1,
+                AlignmentX = -1,
+            };
+            Button push = new Button(parent)
+            {
+                Text = "Push",
+                WeightX = 1,
+                AlignmentX = -1,
+            };
+            Button pop = new Button(parent)
+            {
+                Text = "pop",
+                WeightX = 1,
+                AlignmentX = -1,
+            };
+
+            label.Show();
+            push.Show();
+            pop.Show();
+
+            push.Clicked += (s, e) =>
+            {
+                _navi.Push(CreatePage(parent), string.Format("{0} Page", _sequence - 1));
+            };
+
+            pop.Clicked += (s, e) =>
+            {
+                var item = _navi.NavigationStack.LastOrDefault();
+                int nativePointer = (int)(IntPtr)(item.Content);
+                Console.WriteLine("----- Before Call _navi.Pop() {0:x} ", nativePointer);
+                _navi.Pop();
+                Console.WriteLine("----- After Call _navi.Pop() {0:x} ", nativePointer);
+            };
+
+            push.Resize(500, 100);
+            pop.Resize(500, 100);
+            label.Resize(500, 100);
+            box.SetLayoutCallback(() =>
+            {
+                Console.WriteLine("Layout callback with : {0}", box.Geometry);
+                var rect = box.Geometry;
+                label.Move(rect.X, rect.Y);
+                push.Move(rect.X, rect.Y + 100);
+                pop.Move(rect.X, rect.Y + 200);
+            });
+
+            box.PackEnd(label);
+            box.PackEnd(push);
+            box.PackEnd(pop);
+            return box;
+        }
+    }
+}
index 71883f6..fcceb74 100644 (file)
@@ -84,6 +84,11 @@ namespace ElmSharp.Test
             index.Update(0);
             box.PackEnd(list);
             box.PackEnd(index);
+            box.SetLayoutCallback(() =>
+            {
+                list.Geometry = box.Geometry;
+                index.Geometry = box.Geometry;
+            });
             conformant.SetContent(box);
         }