Beispiel #1
0
        public void TestRegimes_ClickCosmosLink_CosmosTimelineIsVisible()
        {
            Point cosmosLinkPosition = vcPageObj.CosmosLink.Location;
            Point earthLinkPosition  = vcPageObj.EarthLink.Location;

            action = new ActionsExtension(Driver);

            // Click on the earth regime link.
            action.MoveByOffset(earthLinkPosition.X + 5, earthLinkPosition.Y + 2).Click().Perform();

            vcPageObj.WaitAnimation();

            action.SetDefault();

            JsVisible visibleBefore = vcPageObj.GetViewport();

            // Click on the cosmos regime link.
            action.MoveByOffset(cosmosLinkPosition.X + 5, cosmosLinkPosition.Y + 2).Click().Perform();

            vcPageObj.WaitAnimation();

            JsVisible     visibleAfter   = vcPageObj.GetViewport();
            JsTimeline    timeline       = GetCosmosTimeline();
            double        width          = timeline.right - timeline.left;
            JsCoordinates timelineCenter = new JsCoordinates(timeline.left + width / 2, timeline.y + timeline.height / 2);

            Assert.IsTrue(IsTimlineInFullSize(visibleAfter, timeline));
            Assert.AreEqual(visibleAfter.CenterX, timelineCenter.X, 1);
            Assert.AreEqual(visibleAfter.CenterY, timelineCenter.Y, 1);
            Assert.AreNotEqual(visibleBefore, visibleAfter);
        }
Beispiel #2
0
        public void TestRegimes_ClickEarthBarNoOverlay_EarthTimelineIsVisible()
        {
            var vc = new VirtualCanvasComponent(Driver);

            vc.SetVisible(new JsVisible(-21.173972602739752, 226047946.84065938, 0.02607632093933464));
            vc.UpdateViewport();
            Thread.Sleep(100);

            Point     barPosition   = vcPageObj.EarthBar.Location;
            JsVisible visibleBefore = vcPageObj.GetViewport();

            action = new ActionsExtension(Driver);

            // Click on the regime bar.
            action.MoveByOffset(barPosition.X + 5, barPosition.Y + 2).Click().Perform();

            vcPageObj.WaitAnimation();

            JsVisible     visibleAfter   = vcPageObj.GetViewport();
            JsTimeline    timeline       = GetEarthTimeline();
            double        width          = timeline.right - timeline.left;
            JsCoordinates timelineCenter = new JsCoordinates(timeline.left + width / 2, timeline.y + timeline.height / 2);

            Assert.IsTrue(IsTimlineInFullSize(visibleAfter, timeline));
            Assert.AreEqual(visibleAfter.CenterX, timelineCenter.X, AnimationImplicity);
            Assert.AreEqual(visibleAfter.CenterY, timelineCenter.Y, AnimationImplicity);
            Assert.AreNotEqual(visibleBefore, visibleAfter);
        }
Beispiel #3
0
        public JsTimeline GetEarthTimeline()
        {
            JsTimeline tl = new JsTimeline();

            tl.left       = ExecuteScriptGetNumber("return FindChildTimeline(content.d[0], earthTimelineID).left;");
            tl.right      = ExecuteScriptGetNumber("return FindChildTimeline(content.d[0], earthTimelineID).right;");
            tl.height     = ExecuteScriptGetNumber("return FindChildTimeline(content.d[0], earthTimelineID).height;");
            tl.realHeight = ExecuteScriptGetNumber("return FindChildTimeline(content.d[0], earthTimelineID).realHeight;");
            tl.y          = ExecuteScriptGetNumber("return FindChildTimeline(content.d[0], earthTimelineID).y;");
            tl.realY      = ExecuteScriptGetNumber("return FindChildTimeline(content.d[0], earthTimelineID).realY;");

            return(tl);
        }
Beispiel #4
0
        // NOTE: These methods get only important properties of timeline.
        public JsTimeline GetCosmosTimeline()
        {
            JsTimeline tl = new JsTimeline();

            tl.left       = ExecuteScriptGetNumber("return content.d[0].left;");
            tl.right      = ExecuteScriptGetNumber("return content.d[0].right;");
            tl.height     = ExecuteScriptGetNumber("return content.d[0].height;");
            tl.realHeight = ExecuteScriptGetNumber("return content.d[0].realHeight;");
            tl.y          = ExecuteScriptGetNumber("return content.d[0].y;");
            tl.realY      = ExecuteScriptGetNumber("return content.d[0].realY;");

            return(tl);
        }
Beispiel #5
0
        public JsTimeline GetLifeTimeline()
        {
            JsTimeline tl     = new JsTimeline();
            string     script = "return FindChildTimeline(FindChildTimeline(content.d[0], earthTimelineID), lifeTimelineID)";

            tl.left       = ExecuteScriptGetNumber(script + ".left;");
            tl.right      = ExecuteScriptGetNumber(script + ".right;");
            tl.height     = ExecuteScriptGetNumber(script + ".height;");
            tl.realHeight = ExecuteScriptGetNumber(script + ".realHeight;");
            tl.y          = ExecuteScriptGetNumber(script + ".y;");
            tl.realY      = ExecuteScriptGetNumber(script + ".realY;");

            return(tl);
        }
Beispiel #6
0
        public JsTimeline GetHumanityTimeline()
        {
            JsTimeline tl     = new JsTimeline();
            string     script = "return FindChildTimeline(content.d[0], humanityTimelineID,true)";

            tl.left       = ExecuteScriptGetNumber(script + ".left;");
            tl.right      = ExecuteScriptGetNumber(script + ".right;");
            tl.height     = ExecuteScriptGetNumber(script + ".height;");
            tl.realHeight = ExecuteScriptGetNumber(script + ".realHeight;");
            tl.y          = ExecuteScriptGetNumber(script + ".y;");
            tl.realY      = ExecuteScriptGetNumber(script + ".realY;");

            return(tl);
        }
Beispiel #7
0
        public void TestRegimes_ClickHumanityLink_HumanityTimelineIsVisible()
        {
            Point     linkPosition  = vcPageObj.HumanityLink.Location;
            JsVisible visibleBefore = vcPageObj.GetViewport();

            action = new ActionsExtension(Driver);

            // Click on the regime link.
            action.MoveByOffset(linkPosition.X + 5, linkPosition.Y + 2).Click().Perform();

            vcPageObj.WaitAnimation();

            JsVisible     visibleAfter   = vcPageObj.GetViewport();
            JsTimeline    timeline       = GetHumanityTimeline();
            double        width          = timeline.right - timeline.left;
            JsCoordinates timelineCenter = new JsCoordinates(timeline.left + width / 2, timeline.y + timeline.height / 2);

            Assert.IsTrue(IsTimlineInFullSize(visibleAfter, timeline));
            Assert.AreEqual(visibleAfter.CenterX, timelineCenter.X, AnimationImplicity);
            Assert.AreEqual(visibleAfter.CenterY, timelineCenter.Y, AnimationImplicity);
            Assert.AreNotEqual(visibleBefore, visibleAfter);
        }
Beispiel #8
0
        public bool IsTimlineInFullSize(JsVisible visible, JsTimeline timeline)
        {
            Size   vcSize              = vcPageObj.VirtualCanvas.Size;
            double vwidth              = timeline.right - timeline.left;
            double vheight             = timeline.height;
            double pwidth              = vwidth / visible.Scale;
            double pheight             = vheight / visible.Scale;
            double timelineAspectRatio = pwidth / pheight;
            double canvasAspectRatio   = (double)vcSize.Width / vcSize.Height;
            double ratio = 0;

            if (timelineAspectRatio >= canvasAspectRatio)
            {
                ratio = pwidth / vcSize.Width;
            }
            else
            {
                ratio = pheight / vcSize.Height;
            }

            // NOTE: It's possible to regulate this condition. The term of "full size" is documented.
            return(ratio > 0.9 && ratio <= 1);
        }