3 // Marek Habersack (mhabersack@novell.com)
5 // (C) 2010 Novell, Inc http://novell.com/
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 using System.Collections.Generic;
31 using System.Web.Util;
33 using StandAloneRunnerSupport;
34 using StandAloneTests;
36 using NUnit.Framework;
38 namespace StandAloneTests.DataPager_NumericPagerField_Bug615315
40 [TestCase ("DataPager_NumericPagerField_Bug615315, Test 01", "Page numbers must be sequential (Query Mode)")]
41 public sealed class Test_01 : ITestCase
43 public string PhysicalPath {
44 get { return Path.Combine (Consts.BasePhysicalDir, "DataPager_NumericPagerField_Bug615315"); }
47 public string VirtualPath {
51 public bool SetUp (List <TestRunItem> runItems)
53 runItems.Add (new TestRunItem ("Test_QueryMode.aspx", TestQueryMode_Aspx_Start));
54 runItems.Add (new TestRunItem ("Test_QueryMode.aspx?pageNumber=2", TestQueryMode_Aspx_Page2));
58 void TestQueryMode_Aspx_Start (string result, TestRunItem runItem)
60 string originalHtml = @"<span id=""ctl00_ContentPlaceHolder1_ListView1_DataPager1""><a class=""aspNetDisabled"">First</a> <span>1</span> <a href=""/Test_QueryMode.aspx?pageNumber=2"">2</a> <a href=""/Test_QueryMode.aspx?pageNumber=3"">3</a> <a href=""/Test_QueryMode.aspx?pageNumber=4"">4</a> <a href=""/Test_QueryMode.aspx?pageNumber=5"">5</a> <a href=""/Test_QueryMode.aspx?pageNumber=6"">...</a> <a href=""/Test_QueryMode.aspx?pageNumber=10"">Last</a> </span>";
61 Helpers.ExtractAndCompareCodeFromHtml (result, originalHtml, "#A1");
64 void TestQueryMode_Aspx_Page2 (string result, TestRunItem runItem)
66 string originalHtml = @"<span id=""ctl00_ContentPlaceHolder1_ListView1_DataPager1""><a href=""/Test_QueryMode.aspx?pageNumber=1"">First</a> <a href=""/Test_QueryMode.aspx?pageNumber=1"">1</a> <span>2</span> <a href=""/Test_QueryMode.aspx?pageNumber=3"">3</a> <a href=""/Test_QueryMode.aspx?pageNumber=4"">4</a> <a href=""/Test_QueryMode.aspx?pageNumber=5"">5</a> <a href=""/Test_QueryMode.aspx?pageNumber=6"">...</a> <a href=""/Test_QueryMode.aspx?pageNumber=10"">Last</a> </span>";
67 Helpers.ExtractAndCompareCodeFromHtml (result, originalHtml, "#A1");
71 [TestCase ("DataPager_NumericPagerField_Bug615315, Test 02", "Page numbers must be sequential (PostBack Mode)")]
72 public sealed class Test_02 : ITestCase
74 public string PhysicalPath {
75 get { return Path.Combine (Consts.BasePhysicalDir, "DataPager_NumericPagerField_Bug615315"); }
78 public string VirtualPath {
82 public bool SetUp (List <TestRunItem> runItems)
84 runItems.Add (new TestRunItem ("Test_PostBackMode.aspx", TestPostBackMode_Aspx_Start));
85 #if BUG_IN_THE_RUNTIME_IS_FIXED
86 // With this version of code, the runtime segfaults. Until this is fixed,
87 // we'll be using an alternative version of the code
88 runItems.Add (new TestRunItem ("Default.aspx", TestPostBackMode_Aspx_Page2) {
89 PostValues = new SerializableDictionary <string, string> {
90 {"__EVENTTARGET", "ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl01"},
91 {"__EVENTARGUMENT", String.Empty}
93 UrlDescription = "Page 2"
97 runItems.Add (new TestRunItem ("Test_PostBackMode.aspx", TestPostBackMode_Aspx_Page2) {
98 PostValues = new string[] {
99 "__EVENTTARGET", "ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl01",
100 "__EVENTARGUMENT", String.Empty
102 UrlDescription = "Page 2"
106 runItems.Add (new TestRunItem ("Test_PostBackMode.aspx", TestPostBackMode_Aspx_PageNext) {
107 PostValues = new string[] {
108 "__EVENTTARGET", "ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl05",
109 "__EVENTARGUMENT", String.Empty
111 UrlDescription = "Page 6 (next)"
115 runItems.Add (new TestRunItem ("Test_PostBackMode.aspx", TestPostBackMode_Aspx_PagePrev) {
116 PostValues = new string[] {
117 "__EVENTTARGET", "ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl00",
118 "__EVENTARGUMENT", String.Empty
120 UrlDescription = "Page 5 (prev)"
128 void TestPostBackMode_Aspx_Start (string result, TestRunItem runItem)
130 string originalHtml = @"<span id=""ctl00_ContentPlaceHolder1_ListView1_DataPager1""><input type=""submit"" name=""ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl00$ctl00"" value=""First"" disabled=""disabled"" /> <span>1</span> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl01','')"">2</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl02','')"">3</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl03','')"">4</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl04','')"">5</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl05','')"">...</a> <input type=""submit"" name=""ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl02$ctl00"" value=""Last"" /> </span>";
131 Helpers.ExtractAndCompareCodeFromHtml (result, originalHtml, "#A1");
134 void TestPostBackMode_Aspx_Page2 (string result, TestRunItem runItem)
136 string originalHtml = @"<span id=""ctl00_ContentPlaceHolder1_ListView1_DataPager1""><input type=""submit"" name=""ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl00$ctl00"" value=""First"" /> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl00','')"">1</a> <span>2</span> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl02','')"">3</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl03','')"">4</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl04','')"">5</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl05','')"">...</a> <input type=""submit"" name=""ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl02$ctl00"" value=""Last"" /> </span>";
137 Helpers.ExtractAndCompareCodeFromHtml (result, originalHtml, "#A1");
140 void TestPostBackMode_Aspx_PageNext (string result, TestRunItem runItem)
142 string originalHtml = @"<span id=""ctl00_ContentPlaceHolder1_ListView1_DataPager1""><input type=""submit"" name=""ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl00$ctl00"" value=""First"" /> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl00','')"">...</a> <span>6</span> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl02','')"">7</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl03','')"">8</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl04','')"">9</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl05','')"">10</a> <input type=""submit"" name=""ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl02$ctl00"" value=""Last"" /> </span>";
143 Helpers.ExtractAndCompareCodeFromHtml (result, originalHtml, "#A1");
146 void TestPostBackMode_Aspx_PagePrev (string result, TestRunItem runItem)
148 string originalHtml = @"<span id=""ctl00_ContentPlaceHolder1_ListView1_DataPager1""><input type=""submit"" name=""ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl00$ctl00"" value=""First"" /> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl00','')"">1</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl01','')"">2</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl02','')"">3</a> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl03','')"">4</a> <span>5</span> <a href=""javascript:__doPostBack('ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl01$ctl05','')"">...</a> <input type=""submit"" name=""ctl00$ContentPlaceHolder1$ListView1$DataPager1$ctl02$ctl00"" value=""Last"" /> </span>";
149 Helpers.ExtractAndCompareCodeFromHtml (result, originalHtml, "#A1");