예제 #1
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;
        }
예제 #2
0
        public void TestViewport_ChangeViewport_VisibleChanged()
        {
            // TODO: probably it's good idea to make this input values random.
            const double offsetX = 50;
            const double offsetY = 25;
            const double scaleBias = 1;

            JsVisible offset = new JsVisible(offsetX, offsetY, scaleBias);

            JsVisible visibleBefore = vcPage.GetViewport();
            JsVisible newVisible = visibleBefore;
            JsVisible visibleAfter;

            newVisible += offset;

            vcPage.SetVisible(newVisible);
            visibleAfter = vcPage.GetViewport();

            Assert.AreEqual(newVisible, visibleAfter);

            newVisible -= offset;

            vcPage.SetVisible(newVisible);
            visibleAfter = vcPage.GetViewport();

            Assert.AreEqual(visibleBefore, visibleAfter);
        }
예제 #3
0
        public void SetVisible(JsVisible newVisible)
        {
            // $("#id").virtualCanvas("setVisible", newVisible);
            string json = JSONHelper.Stringify(newVisible);
            StringBuilder script = new StringBuilder("$(");
            script.Append('"').Append('#').Append(virtualCanvas.GetAttribute("id")).Append('"');
            script.Append(").virtualCanvas(");
            script.Append('"').Append("setVisible").Append('"');
            script.Append(',').Append(json).Append(");");

            jsExecutor.ExecuteScript(script.ToString());
        }
예제 #4
0
        public void TestUrlNavigation_SetNewVisible_UrlUpdatedCorrectly()
        {
            JsVisible visibleBefore = vcPageObj.GetViewport();
            JsVisible visibleAfter = new JsVisible(-6000000000, 2000000000, 6000000);
            JsVisible urlVisible = new JsVisible();

            // Get the query string and extract number values from it.
            // It looks like this: #x=7Ga&y=2500000000&s=7000000.
            string query = new Uri(Driver.Url).Fragment;
            MatchCollection match = Regex.Matches(query, @"[\d]+");

            // It stores in Ga units here, so multiply by one billion. Also, it's negative value.
            urlVisible.CenterX = Convert.ToDouble(match[0].Value) * (-1000000000);
            urlVisible.CenterY = Convert.ToDouble(match[1].Value);
            urlVisible.Scale = Convert.ToDouble(match[2].Value);

            Assert.AreEqual(visibleBefore, urlVisible);

            // Change visible and check that url changed also.
            vcPageObj.MoveToVisible(visibleAfter, false);
            vcPageObj.WaitAnimation();

            ExecuteScript("updateLayout();");

            // Get the query string and extract number values from it.
            query = new Uri(Driver.Url).Fragment;
            match = Regex.Matches(query, @"[\d]+");

            // It stores in Ga units here, so multiply by one billion. Also, it's negative value.
            urlVisible.CenterX = Convert.ToDouble(match[0].Value) * (-1000000000);
            urlVisible.CenterY = Convert.ToDouble(match[1].Value);
            urlVisible.Scale = Convert.ToDouble(match[2].Value);

            Assert.AreEqual(visibleAfter, urlVisible);
        }
예제 #5
0
        public void MoveToVisible(JsVisible visible, bool noAnimation)
        {
            // controller.moveToVisible(visible, false);
            string json = JSONHelper.Stringify(visible);
            StringBuilder script = new StringBuilder("controller.moveToVisible(");
            script.Append(json).Append(',').Append(noAnimation.ToString().ToLower()).Append(");");

            jsExecutor.ExecuteScript(script.ToString());
        }