From f512e634b1621af882963f0c0a2b00674bc9c2fa Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Tue, 30 Nov 2010 14:00:21 -0800 Subject: [PATCH] Adding some spec tests around setting a page as the home page --HG-- branch : dev --- src/Orchard.Specs/Bindings/WebAppHosting.cs | 17 +++ src/Orchard.Specs/Pages.feature | 28 ++++- src/Orchard.Specs/Pages.feature.cs | 132 ++++++++++++++++---- 3 files changed, 150 insertions(+), 27 deletions(-) diff --git a/src/Orchard.Specs/Bindings/WebAppHosting.cs b/src/Orchard.Specs/Bindings/WebAppHosting.cs index 580ac4236..5d8d009d7 100644 --- a/src/Orchard.Specs/Bindings/WebAppHosting.cs +++ b/src/Orchard.Specs/Bindings/WebAppHosting.cs @@ -213,6 +213,23 @@ namespace Orchard.Specs.Bindings { else if (radio.Attributes.Contains("checked")) radio.Attributes.Remove("checked"); } + break; + case "checkbox": + if (string.Equals(row["value"], "true", StringComparison.OrdinalIgnoreCase)) { + input.Attributes.Add("checked", "checked"); + } + else { + input.Attributes.Remove("checked"); + } + + var hiddenForCheckbox = inputs.Where( + x => + x.GetAttributeValue("type", "") == "hidden" && + x.GetAttributeValue("name", x.GetAttributeValue("id", "")) == r["name"] + ).FirstOrDefault(); + if (hiddenForCheckbox != null) + hiddenForCheckbox.Attributes.Add("value", row["value"]); + break; default: input.Attributes.Add("value", row["value"]); diff --git a/src/Orchard.Specs/Pages.feature b/src/Orchard.Specs/Pages.feature index e0cae236d..67a810400 100644 --- a/src/Orchard.Specs/Pages.feature +++ b/src/Orchard.Specs/Pages.feature @@ -39,4 +39,30 @@ Scenario: If I create a page which gets a conflicting path generated its path is And I hit "Publish Now" And I go to "super-duper-2" Then I should see "]*>.*?Super Duper.*?" - And I should see "This is super number two." \ No newline at end of file + And I should see "This is super number two." + +Scenario: A new page marked to be the home page and publish does take over the home page and is not accessible from its own standard path. + Given I have installed Orchard + When I go to "admin/contents/create/page" + And I fill in + | name | value | + | Routable.Title | Super Duper | + | Body.Text | This is a draft of the new home page. | + | Routable.PromoteToHomePage | true | + And I hit "Publish Now" + And I go to "/Default.aspx" + Then I should see "

Super Duper

" + When I go to "super-duper" + Then the status should be 404 "Not Found" + +Scenario: A new page marked to be the home page but only saved as draft does not take over the home page + Given I have installed Orchard + When I go to "admin/contents/create/page" + And I fill in + | name | value | + | Routable.Title | Drafty | + | Body.Text | This is a draft of the new home page. | + | Routable.PromoteToHomePage | true | + And I hit "Save" + And I go to "/Default.aspx" + Then I should see "

Welcome to Orchard!

" diff --git a/src/Orchard.Specs/Pages.feature.cs b/src/Orchard.Specs/Pages.feature.cs index 1056c3b64..922fb3968 100644 --- a/src/Orchard.Specs/Pages.feature.cs +++ b/src/Orchard.Specs/Pages.feature.cs @@ -1,7 +1,7 @@ // ------------------------------------------------------------------------------ // // This code was generated by SpecFlow (http://www.specflow.org/). -// SpecFlow Version:1.3.2.0 +// SpecFlow Version:1.4.0.0 // Runtime Version:4.0.30319.1 // // Changes to this file may cause incorrect behavior and will be lost if @@ -14,7 +14,7 @@ namespace Orchard.Specs using TechTalk.SpecFlow; - [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.3.2.0")] + [System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.4.0.0")] [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [NUnit.Framework.TestFixtureAttribute()] [NUnit.Framework.DescriptionAttribute("Pages")] @@ -31,7 +31,7 @@ namespace Orchard.Specs { testRunner = TechTalk.SpecFlow.TestRunnerManager.GetTestRunner(); TechTalk.SpecFlow.FeatureInfo featureInfo = new TechTalk.SpecFlow.FeatureInfo(new System.Globalization.CultureInfo("en-US"), "Pages", "In order to add content pages to my site\r\nAs an author\r\nI want to create, publish" + - " and edit pages", ((string[])(null))); + " and edit pages", GenerationTargetLanguage.CSharp, ((string[])(null))); testRunner.OnFeatureStart(featureInfo); } @@ -61,11 +61,11 @@ namespace Orchard.Specs #line 6 this.ScenarioSetup(scenarioInfo); #line 7 -testRunner.Given("I have installed Orchard"); + testRunner.Given("I have installed Orchard"); #line 8 -testRunner.When("I go to \"admin\""); + testRunner.When("I go to \"admin\""); #line 9 -testRunner.Then("I should see \"Page\""); + testRunner.Then("I should see \"Page\""); #line hidden testRunner.CollectScenarioErrors(); } @@ -78,9 +78,9 @@ testRunner.Then("I should see \"Page #line 11 this.ScenarioSetup(scenarioInfo); #line 12 -testRunner.Given("I have installed Orchard"); + testRunner.Given("I have installed Orchard"); #line 13 -testRunner.When("I go to \"admin/contents/create/page\""); + testRunner.When("I go to \"admin/contents/create/page\""); #line hidden TechTalk.SpecFlow.Table table1 = new TechTalk.SpecFlow.Table(new string[] { "name", @@ -92,15 +92,15 @@ testRunner.When("I go to \"admin/contents/create/page\""); "Body.Text", "This is super."}); #line 14 -testRunner.And("I fill in", ((string)(null)), table1); + testRunner.And("I fill in", ((string)(null)), table1); #line 18 -testRunner.And("I hit \"Publish Now\""); + testRunner.And("I hit \"Publish Now\""); #line 19 -testRunner.And("I go to \"super-duper\""); + testRunner.And("I go to \"super-duper\""); #line 20 -testRunner.Then("I should see \"]*>.*?Super Duper.*?\""); + testRunner.Then("I should see \"]*>.*?Super Duper.*?\""); #line 21 -testRunner.And("I should see \"This is super.\""); + testRunner.And("I should see \"This is super.\""); #line hidden testRunner.CollectScenarioErrors(); } @@ -115,9 +115,9 @@ testRunner.And("I should see \"This is super.\""); #line 23 this.ScenarioSetup(scenarioInfo); #line 24 -testRunner.Given("I have installed Orchard"); + testRunner.Given("I have installed Orchard"); #line 25 -testRunner.When("I go to \"admin/contents/create/page\""); + testRunner.When("I go to \"admin/contents/create/page\""); #line hidden TechTalk.SpecFlow.Table table2 = new TechTalk.SpecFlow.Table(new string[] { "name", @@ -129,17 +129,17 @@ testRunner.When("I go to \"admin/contents/create/page\""); "Body.Text", "This is super."}); #line 26 -testRunner.And("I fill in", ((string)(null)), table2); + testRunner.And("I fill in", ((string)(null)), table2); #line 30 -testRunner.And("I hit \"Publish Now\""); + testRunner.And("I hit \"Publish Now\""); #line 31 -testRunner.And("I go to \"super-duper\""); + testRunner.And("I go to \"super-duper\""); #line 32 -testRunner.Then("I should see \"]*>.*?Super Duper.*?\""); + testRunner.Then("I should see \"]*>.*?Super Duper.*?\""); #line 33 -testRunner.And("I should see \"This is super.\""); + testRunner.And("I should see \"This is super.\""); #line 34 -testRunner.When("I go to \"admin/contents/create/page\""); + testRunner.When("I go to \"admin/contents/create/page\""); #line hidden TechTalk.SpecFlow.Table table3 = new TechTalk.SpecFlow.Table(new string[] { "name", @@ -151,15 +151,95 @@ testRunner.When("I go to \"admin/contents/create/page\""); "Body.Text", "This is super number two."}); #line 35 -testRunner.And("I fill in", ((string)(null)), table3); + testRunner.And("I fill in", ((string)(null)), table3); #line 39 -testRunner.And("I hit \"Publish Now\""); + testRunner.And("I hit \"Publish Now\""); #line 40 -testRunner.And("I go to \"super-duper-2\""); + testRunner.And("I go to \"super-duper-2\""); #line 41 -testRunner.Then("I should see \"]*>.*?Super Duper.*?\""); + testRunner.Then("I should see \"]*>.*?Super Duper.*?\""); #line 42 -testRunner.And("I should see \"This is super number two.\""); + testRunner.And("I should see \"This is super number two.\""); +#line hidden + testRunner.CollectScenarioErrors(); + } + + [NUnit.Framework.TestAttribute()] + [NUnit.Framework.DescriptionAttribute("A new page marked to be the home page and publish does take over the home page an" + + "d is not accessible from its own standard path.")] + public virtual void ANewPageMarkedToBeTheHomePageAndPublishDoesTakeOverTheHomePageAndIsNotAccessibleFromItsOwnStandardPath_() + { + TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("A new page marked to be the home page and publish does take over the home page an" + + "d is not accessible from its own standard path.", ((string[])(null))); +#line 44 +this.ScenarioSetup(scenarioInfo); +#line 45 + testRunner.Given("I have installed Orchard"); +#line 46 + testRunner.When("I go to \"admin/contents/create/page\""); +#line hidden + TechTalk.SpecFlow.Table table4 = new TechTalk.SpecFlow.Table(new string[] { + "name", + "value"}); + table4.AddRow(new string[] { + "Routable.Title", + "Super Duper"}); + table4.AddRow(new string[] { + "Body.Text", + "This is a draft of the new home page."}); + table4.AddRow(new string[] { + "Routable.PromoteToHomePage", + "true"}); +#line 47 + testRunner.And("I fill in", ((string)(null)), table4); +#line 52 + testRunner.And("I hit \"Publish Now\""); +#line 53 + testRunner.And("I go to \"/Default.aspx\""); +#line 54 + testRunner.Then("I should see \"

Super Duper

\""); +#line 55 + testRunner.When("I go to \"super-duper\""); +#line 56 + testRunner.Then("the status should be 404 \"Not Found\""); +#line hidden + testRunner.CollectScenarioErrors(); + } + + [NUnit.Framework.TestAttribute()] + [NUnit.Framework.DescriptionAttribute("A new page marked to be the home page but only saved as draft does not take over " + + "the home page")] + public virtual void ANewPageMarkedToBeTheHomePageButOnlySavedAsDraftDoesNotTakeOverTheHomePage() + { + TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("A new page marked to be the home page but only saved as draft does not take over " + + "the home page", ((string[])(null))); +#line 58 +this.ScenarioSetup(scenarioInfo); +#line 59 + testRunner.Given("I have installed Orchard"); +#line 60 + testRunner.When("I go to \"admin/contents/create/page\""); +#line hidden + TechTalk.SpecFlow.Table table5 = new TechTalk.SpecFlow.Table(new string[] { + "name", + "value"}); + table5.AddRow(new string[] { + "Routable.Title", + "Drafty"}); + table5.AddRow(new string[] { + "Body.Text", + "This is a draft of the new home page."}); + table5.AddRow(new string[] { + "Routable.PromoteToHomePage", + "true"}); +#line 61 + testRunner.And("I fill in", ((string)(null)), table5); +#line 66 + testRunner.And("I hit \"Save\""); +#line 67 + testRunner.And("I go to \"/Default.aspx\""); +#line 68 + testRunner.Then("I should see \"

Welcome to Orchard!

\""); #line hidden testRunner.CollectScenarioErrors(); }