// 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; }
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); }
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()); }
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); }
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()); }