public void Tab_Marked_As_Selected_Has_Correct_Styling_And_JavaScript() { // Arrange var resp = new MockWriter(); Tabs tabs = TestHelper.SetupSimpleTabObject(resp); // only testing raw output tabs .Rendering .Compress() .ShowCSS() ; // Set 3rd tab as selected tabs.Panes.ToDictionary()["tab3"].IsActive = true; TestHelper.ForceRender(tabs); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert // Check styling is correct Assert.IsTrue(html.Contains("<li class=\"ui-state-default ui-corner-top ui-tabs-active ui-state-active\">") ); string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#myTabs\").tabs({active: 2})" + ";});" + "</script>"; // Check script output Assert.IsTrue(html.Contains(expected)); }
public void Button_Option_Disabled_Renders_Correctly() { // Arrange var resp = new MockWriter(); PushButton btn = TestHelper.SetupSimpleButtonObject(resp); // only testing raw output btn .Options .SetDisabled(true) .Finish() .Rendering .Compress() .ShowCSS() ; // Act - Force output we'd see on the web page btn.Render(); string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#btn\").button({disabled: true})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void Ensure_My_Option_With_Position_Enum_Is_Added_To_Script_Definition() { // Arrange var resp = new MockWriter(); Position pos = TestHelper.SetupSimplePositionObject(resp); // only testing raw output pos .Rendering .Compress() .Finish() .Options .SetMy(Fluqi.Core.Position.ePosition.Right) ; TestHelper.ForceRender(pos); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#myPosition\").position({my: \"right\"})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void Accordion_With_Full_CSS_Delivers_Correct_CSS_Classes() { // Arrange var resp = new MockWriter(); var accordion = TestHelper.SetupSimpleAccordionObject(resp); // only testing raw output accordion .Rendering .Compress() .ShowCSS() ; TestHelper.ForceRender(accordion); // Act string html = resp.Output.ToString(); // Assert Assert.IsTrue(html.Contains("id=\"myAccordion\"")); Assert.AreEqual(1, Utils.NumberOfMatches(html, "<div id=\"myAccordion\" class=\"ui-accordion ui-widget ui-helper-reset ui-accordion-icons\">") ); // Test the Active panel Assert.AreEqual(1, Utils.NumberOfMatches(html, "<h3 class=\"ui-accordion-header ui-helper-reset ui-state-default ui-state-active ui-corner-top\">") ); // Test the InActive panel(s) Assert.AreEqual(2, Utils.NumberOfMatches(html, "<h3 class=\"ui-accordion-header ui-helper-reset ui-state-default ui-corner-all\">") ); // Test the content panels, which _always_ have "ui-accordion-content-active" (see https://github.com/toepoke/Fluqi/issues/1) Assert.AreEqual(3, Utils.NumberOfMatches(html, "<div class=\"ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active\">") ); }
public void Ensure_Disabled_Option_Is_Added_To_Script_Definition() { // Arrange var resp = new MockWriter(); Slider sldr = TestHelper.SetupSimpleSliderObject(resp); // only testing raw output sldr .Options .SetDisabled(true) .Finish() .Rendering .Compress(); TestHelper.ForceRender(sldr); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#mySlider\").slider({disabled: true})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void Ensure_Two_Buttons_Are_Added_To_Script_Definition_Correctly() { // Arrange var resp = new MockWriter(); Dialog dlg = TestHelper.SetupSimpleDialogObject(resp); // only testing raw output dlg .Options .AddButton("OK", "addToLog('OK button clicked.');") .AddButton("Cancel", "addToLog('Cancel button clicked.');") .Finish() .Rendering .Compress() ; TestHelper.ForceRender(dlg); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#myDlg\").dialog({buttons: {\"OK\": function() {addToLog('OK button clicked.');},\"Cancel\": function() {addToLog('Cancel button clicked.');}}})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void Ensure_Icons_By_String_Option_Is_Added_To_Script_Definition() { // Arrange var resp = new MockWriter(); Menu menu = TestHelper.SetupSimpleMenuObject(resp); // only testing raw output menu .Options .SetIcons("abcxyz") .Finish() .Rendering .Compress(); TestHelper.ForceRender(menu); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#myMenu\").menu({icons: { submenu: \"abcxyz\" }})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void Ensure_Populated_ContentByString_Option_Is_Added_To_Script_Definition() { // Arrange var resp = new MockWriter(); ToolTip tooltip = TestHelper.SetupSimpleToolTipObject(resp); // only testing raw output tooltip .Options .SetContentByString("Awesome title!") .Finish() .Rendering .Compress(); TestHelper.ForceRender(tooltip); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(document).tooltip({content: \"Awesome title!\"})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void AutoComplete_Option_AppendTo_Renders_Correctly() { // Arrange var resp = new MockWriter(); AutoComplete ac = TestHelper.SetupSimpleAutoCompleteObject(resp); // only testing raw output ac .Options .SetAppendTo("#my-element") .Finish() .Rendering .Compress() .ShowCSS() ; // Act - Force output we'd see on the web page ac.Render(); string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#ac\").autocomplete({source: ['c++', 'java', 'php'],appendTo: \"#my-element\"})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void AutoComplete_With_Search_EventHandler_Wired_Up_Renders_Correctly() { // Arrange var resp = new MockWriter(); AutoComplete ac = TestHelper.SetupSimpleAutoCompleteObject(resp); // only testing raw output ac .Options .Finish() .Rendering .Compress() .ShowCSS() ; ac.Events .SetSearchEvent("addToLog('Search event called');") ; // Act - Force output we'd see on the web page ac.Render(); string html = resp.Output.ToString(); // Assert string expected = "search: function(event, ui) {addToLog('Search event called');}"; Assert.IsTrue(html.Contains(expected)); }
public void Ensure_Multiple_Options_Are_Added_To_Script_Definition_Correctly() { // Arrange var resp = new MockWriter(); AutoComplete ac = TestHelper.SetupSimpleAutoCompleteObject(resp); // only testing raw output ac .Options .SetDisabled(true) .SetMinimumLength(3) .Finish() .Rendering .Compress() .ShowCSS() ; // Act - Force output we'd see on the web page ac.Render(); string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#ac\").autocomplete({disabled: true,source: ['c++', 'java', 'php'],minLength: 3})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void Tabs_With_Full_CSS_Delivers_Correct_CSS_Classes() { // Arrange var resp = new MockWriter(); Tabs tabs = TestHelper.SetupSimpleTabObject(resp); // only testing raw output tabs .Rendering .Compress() .ShowCSS() ; TestHelper.ForceRender(tabs); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert Assert.IsTrue(html.Contains("id=\"myTabs\"")); Assert.AreEqual(1, Utils.NumberOfMatches(html, "<div id=\"myTabs\" class=\"ui-tabs ui-widget ui-widget-content ui-corner-all\">") ); Assert.AreEqual(1, Utils.NumberOfMatches(html, "<ul class=\"ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all\">") ); // Should be 3 of these (one for each LI header, but first one is selected) Assert.AreEqual(1, Utils.NumberOfMatches(html, "<li class=\"ui-state-default ui-corner-top ui-tabs-selected ui-state-active\">") ); Assert.AreEqual(2, Utils.NumberOfMatches(html, "<li class=\"ui-state-default ui-corner-top\">") ); // Should be 3 of these (one for each content pane) Assert.AreEqual(3, Utils.NumberOfMatches(html, "class=\"ui-tabs-panel ui-widget-content ui-corner-bottom\"") ); }
public void Tabs_With_No_CSS_Renders_Correct_Structure() { // Arrange var resp = new MockWriter(); Tabs tabs = TestHelper.SetupSimpleTabObject(resp); // only testing raw output tabs .Rendering .Compress() ; TestHelper.ForceRender(tabs); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert Assert.IsTrue(html.Contains("id=\"myTabs\"")); // Should be: // 1 UL Assert.AreEqual(1, Utils.NumberOfMatches(html, "<ul") ); Assert.AreEqual(1, Utils.NumberOfMatches(html, "</ul") ); // 3 LI Assert.AreEqual(3, Utils.NumberOfMatches(html, "<li") ); Assert.AreEqual(3, Utils.NumberOfMatches(html, "</li") ); // 3 content panels Assert.AreEqual(3, Utils.NumberOfMatches(html, "<div id=\"tab") ); }
public void Tabs_With_BeforeActivate_EventHandler_Wired_Up_Renders_Correctly() { // Arrange // Arrange var resp = new MockWriter(); Tabs tabs = TestHelper.SetupSimpleTabObject(resp); // only testing raw output tabs .Options .SetEvent("mouseover") .Finish() .Rendering .Compress(); tabs.Events .SetBeforeActivateEvent("addToLog('beforeActivate event called');") ; TestHelper.ForceRender(tabs); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "beforeActivate: function(event, ui) {addToLog('beforeActivate event called');}"; Assert.IsTrue(html.Contains(expected)); }
public void Menu_With_Full_CSS_Delivers_Correct_CSS_Classes() { // Arrange var resp = new MockWriter(); Menu menu = TestHelper.SetupSimpleMenuObject(resp); // only testing raw output menu .Items() .Add("Item 1") .Finish() .Rendering .Compress() .ShowCSS() ; TestHelper.ForceRender(menu); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert - UL root Assert.AreEqual(1, Utils.NumberOfMatches(html, "<ul id=\"myMenu\" class=\"ui-menu ui-widget ui-widget-content ui-corner-all\">")); // Assert - LI Assert.AreEqual(1, Utils.NumberOfMatches(html, "<li class=\"ui-menu-item\"><a href=\"#\" class=\"ui-corner-all\">Item 1</a></li>") ); // Assert - A Assert.AreEqual(1, Utils.NumberOfMatches(html, "<a href=\"#\" class=\"ui-corner-all\">Item 1</a>") ); }
public void With_Addition_Attributes_Are_Rendered() { // Arrange var resp = new MockWriter(); SelectMenu selectMenu = TestHelper.SetupSimpleSelectMenuObject(resp); selectMenu .WithAttribute("name", "select-name") .Items() .Add("Item 1", "1") .ConfigureItem() .WithAttribute("data-class", "podcast") .Finish() .Finish() ; TestHelper.ForceRender(selectMenu); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert Assert.IsTrue(html.Contains("name=\"select-name\"")); Assert.IsTrue(html.Contains("data-class=\"podcast\"")); }
public void Ensure_Collapsible_Option_Is_Added_To_Script_Definition() { // Arrange var resp = new MockWriter(); var accordion = TestHelper.SetupSimpleAccordionObject(resp); // only testing raw output accordion .Rendering .Compress() .Finish() .Options .SetCollapsible(true) ; TestHelper.ForceRender(accordion); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#myAccordion\").accordion({collapsible: true});" + "});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void DatePicker_Option_AltField_Renders_Correctly() { // Arrange var resp = new MockWriter(); DatePicker ac = TestHelper.SetupSimpleDatePickerObject(resp); // only testing raw output ac .Options .SetAltField("#my-element") .Finish() .Rendering .Compress() .ShowCSS() ; // Act - Force output we'd see on the web page ac.Render(); string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#dt\").datepicker({altField: \"#my-element\"})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void Ensure_AppendTo_Option_Is_Added_To_Script_Definition() { // Arrange var resp = new MockWriter(); var ctl = TestHelper.SetupSimpleSelectMenuObject(resp); // only testing raw output ctl .Options .SetAppendTo("#someElem") .Finish() .Rendering .Compress() .Finish() ; TestHelper.ForceRender(ctl); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#mySelectMenu\").selectmenu({appendTo: \"#someElem\"})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void Ensure_One_Button_And_Other_Options_Are_Added_To_Script_Definition_Correctly() { // Arrange var resp = new MockWriter(); Dialog dlg = TestHelper.SetupSimpleDialogObject(resp); // only testing raw output dlg .Options .AddButton("OK", "addToLog('OK button clicked.');") .SetDisabled(true) .SetPosition( Core.Position.ePosition.Left, Core.Position.ePosition.Top ) .Finish() .Rendering .Compress() ; TestHelper.ForceRender(dlg); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#myDlg\").dialog({disabled: true,position: [ 'left', 'top' ],buttons: {\"OK\": function() {addToLog('OK button clicked.');}}})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void Ensure_Value_Option_Is_Added_To_Script_Definition() { // Arrange var resp = new MockWriter(); ProgressBar pb = TestHelper.SetupSimpleProgressBarObject(resp); // only testing raw output pb .Options .SetValue(55) .Finish() .Rendering .Compress(); TestHelper.ForceRender(pb); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#pb\").progressbar({value: 55})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void Ensure_Accordion_With_Multiple_EventHandlers_Are_Added_To_Script_Definition_Correctly() { // Arrange var resp = new MockWriter(); var accordion = TestHelper.SetupSimpleAccordionObject(resp); // only testing raw output accordion .Rendering .Compress() .Finish() .Events .SetCreateEvent("addToLog('Create event called');") .SetActivateEvent("addToLog('Activate event called');") ; TestHelper.ForceRender(accordion); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "create: function(event, ui) {addToLog('Create event called');},activate: function(event, ui) {addToLog('Activate event called');}"; Assert.IsTrue(html.Contains(expected)); }
public void Manual_Script_With_DocReady_Delivers_Correct_Rendering() { // Arrange var resp = new MockWriter(); ToolTip tooltip = TestHelper.SetupSimpleToolTipObject(resp); // only testing raw output tooltip.Rendering .SetAutoScript(false) .Compress() ; TestHelper.ForceRender(tooltip); tooltip.RenderStartUpScript(); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(document).tooltip()" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void Accordion_Without_CSS_On_Renders_Correct_Structure() { // Arrange var resp = new MockWriter(); var accordion = TestHelper.SetupSimpleAccordionObject(resp); // only testing raw output accordion .Rendering .Compress() ; TestHelper.ForceRender(accordion); string html = resp.Output.ToString(); // Assert Assert.IsTrue(html.Contains("id=\"myAccordion\"")); // 3 content panels Assert.AreEqual(3, Utils.NumberOfMatches(html, "<h3>") ); Assert.AreEqual(3, Utils.NumberOfMatches(html, "</h3><div>") ); Assert.AreEqual(1, Utils.NumberOfMatches(html, "<h3>Pane #1</h3>") ); Assert.AreEqual(1, Utils.NumberOfMatches(html, "<h3>Pane #2</h3>") ); Assert.AreEqual(1, Utils.NumberOfMatches(html, "<h3>Pane #3</h3>") ); }
public void Ensure_DatePicker_With_Multiple_EventHandlers_Are_Added_To_Script_Definition_Correctly() { // Arrange var resp = new MockWriter(); DatePicker ac = TestHelper.SetupSimpleDatePickerObject(resp); // only testing raw output ac .Rendering .Compress() .ShowCSS() ; ac.Events .SetCreateEvent("addToLog('Create event called');") .SetOnCloseEvent("addToLog('OnClose event called');") ; // Act - Force output we'd see on the web page ac.Render(); string html = resp.Output.ToString(); // Assert string expected = "create: function(event, ui) {addToLog('Create event called');},onClose: function(dateText, inst) {addToLog('OnClose event called');}"; Assert.IsTrue(html.Contains(expected)); }
public void Ensure_Multiple_Options_Are_Added_To_Script_Definition_Correctly() { // Arrange var resp = new MockWriter(); Tabs tabs = TestHelper.SetupSimpleTabObject(resp); // only testing raw output tabs .Options .SetCollapsible(true) .SetHeightStyle(Core.HeightStyle.eHeightStyle.Fill) .Finish() .Rendering .Compress(); TestHelper.ForceRender(tabs); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert string expected = "<script type=\"text/javascript\">" + "$(document).ready( function() {" + "$(\"#myTabs\").tabs({heightStyle: \"fill\",collapsible: true})" + ";});" + "</script>"; Assert.IsTrue(html.Contains(expected)); }
public void With_Addition_CSS_Delivers_Is_Rendered() { // Arrange var resp = new MockWriter(); SelectMenu selectMenu = TestHelper.SetupSimpleSelectMenuObject(resp); selectMenu .WithCss("select-extra-css") .Items() .Add("Item 1", "1") .ConfigureItem() .WithCss("option-extra-css") .Finish() .Finish() ; TestHelper.ForceRender(selectMenu); // Act - Force output we'd see on the web page string html = resp.Output.ToString(); // Assert Assert.IsTrue(html.Contains("select-extra-css")); Assert.IsTrue(html.Contains("option-extra-css")); }
public void Button_With_Click_EventHandler_Wired_Up_Renders_Correctly() { // Arrange var resp = new MockWriter(); PushButton btn = TestHelper.SetupSimpleButtonObject(resp); // only testing raw output btn .Rendering .Compress() .ShowCSS() ; btn.Events .SetClickEvent("addToLog('Click event called');") ; // Act - Force output we'd see on the web page btn.Render(); string html = resp.Output.ToString(); // Assert - Note as a pseudo event, the "click" is rendered a little bit differently string expected = "$(\"#btn\").click(function() {addToLog('Click event called');}"; Assert.IsTrue(html.Contains(expected)); }
public void Ensure_GetDisabled_Renders_Correctly() { // Arrange var resp = new MockWriter(); var ctl = TestHelper.SetupSimpleToolTipObject(resp); ctl.Methods.GetDisabled(); // Act string html = resp.Output.ToString(); // Assert Assert.AreEqual("$(document).tooltip(\"option\",\"disabled\")", html); }
public void Ensure_SetContent_ByFunction_Renders_Correctly() { // Arrange var resp = new MockWriter(); var ctl = TestHelper.SetupSimpleToolTipObject(resp); ctl.Methods.SetContentByFunction("function() { return 'Awesome tooltip!'; }"); // Act string html = resp.Output.ToString(); // Assert Assert.AreEqual("$(document).tooltip(\"option\",\"content\",function() { return 'Awesome tooltip!'; })", html); }