Wiki2Go 1.17.5 → 1.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. data/bin/Wiki2Go_firewall_blacklist.rb +8 -0
  2. data/bin/Wiki2Go_make_cvs_repository.rb +1 -0
  3. data/bin/Wiki2Go_make_site.rb +1 -2
  4. data/bin/Wiki2Go_update_site.rb +1 -2
  5. data/lib/Web2Go/CGIRequest.rb +8 -2
  6. data/lib/Web2Go/CGIResponse.rb +17 -14
  7. data/lib/Web2Go/MockRequest.rb +12 -2
  8. data/lib/Web2Go/MockResponse.rb +10 -7
  9. data/lib/Web2Go/WebrickRequest.rb +106 -101
  10. data/lib/Web2Go/WebrickResponse.rb +4 -8
  11. data/lib/Wiki2Go/BlackList.rb +48 -25
  12. data/lib/Wiki2Go/DotGraphics.rb +1 -1
  13. data/lib/Wiki2Go/FileStorage.rb +266 -266
  14. data/lib/Wiki2Go/HTMLFormatter.rb +28 -0
  15. data/lib/Wiki2Go/Install/config/chonqed_blacklist.txt +418 -0
  16. data/lib/Wiki2Go/Install/config/passwords +1 -1
  17. data/lib/Wiki2Go/Install/config/url_blacklist.txt +3855 -0
  18. data/lib/Wiki2Go/Install/make_repository.rb +32 -26
  19. data/lib/Wiki2Go/Install/make_site.rb +197 -111
  20. data/lib/Wiki2Go/Install/site/error.html +1 -1
  21. data/lib/Wiki2Go/Install/site/robots.txt +10 -1
  22. data/lib/Wiki2Go/Install/site/style.css +129 -64
  23. data/lib/Wiki2Go/Install/templates/admin.htm +1 -1
  24. data/lib/Wiki2Go/Install/templates/admin_pages/edit.txt +2 -1
  25. data/lib/Wiki2Go/Install/templates/admin_pages/format_for_fck.txt +31 -0
  26. data/lib/Wiki2Go/Install/templates/admin_pages/passwords.txt +1 -1
  27. data/lib/Wiki2Go/Install/templates/edit.htm +62 -46
  28. data/lib/Wiki2Go/Install/templates/full_footer.htm +31 -33
  29. data/lib/Wiki2Go/Install/templates/header.htm +0 -1
  30. data/lib/Wiki2Go/Install/templates/menu.htm +29 -0
  31. data/lib/Wiki2Go/Install/templates/pagelist.htm +46 -43
  32. data/lib/Wiki2Go/Install/templates/simple_footer.htm +20 -16
  33. data/lib/Wiki2Go/Install/templates/versionlist.htm +52 -40
  34. data/lib/Wiki2Go/Install/templates/view.htm +46 -29
  35. data/lib/Wiki2Go/Install/templates/wikiedit.htm +63 -0
  36. data/lib/Wiki2Go/Install/wiki/delete.png +0 -0
  37. data/lib/Wiki2Go/Install/wiki/style.css +133 -63
  38. data/lib/Wiki2Go/LineFormatter.rb +345 -197
  39. data/lib/Wiki2Go/Page.rb +16 -3
  40. data/lib/Wiki2Go/PrivateWikiConfig.rb +5 -5
  41. data/lib/Wiki2Go/PublicWikiConfig.rb +83 -37
  42. data/lib/Wiki2Go/ReadWriteWikiConfig.rb +8 -8
  43. data/lib/Wiki2Go/Server.rb +6 -1
  44. data/lib/Wiki2Go/SpamFilter.rb +32 -41
  45. data/lib/Wiki2Go/Web.rb +10 -3
  46. data/lib/Wiki2Go/Wiki2Go.rb +301 -94
  47. data/lib/Wiki2Go/Wiki2GoConfig.rb +87 -6
  48. data/lib/Wiki2Go/Wiki2GoServlet.rb +66 -12
  49. data/lib/Wiki2Go/WikiFormatter.rb +60 -30
  50. data/lib/Wiki2Go/cgi/diff.rb +20 -0
  51. data/lib/Wiki2Go/cgi/secure/log_rss.rb +21 -0
  52. data/lib/Wiki2Go/cgi/sidebyside.rb +20 -0
  53. data/lib/Wiki2Go/cgi/wikiedit.rb +20 -0
  54. data/lib/Wiki2Go/firewall_blacklist.rb +88 -0
  55. data/test/All.rb +5 -2
  56. data/test/TestBlackList.rb +70 -14
  57. data/test/TestConfig.rb +5 -5
  58. data/test/TestDiff.rb +95 -0
  59. data/test/TestFormatter.rb +14 -16
  60. data/test/TestHTMLFormatter.rb +37 -0
  61. data/test/TestInstall.rb +70 -27
  62. data/test/TestLineFormatter.rb +71 -15
  63. data/test/TestRSS.rb +8 -7
  64. data/test/TestRepository.rb +50 -0
  65. data/test/TestServer.rb +3 -8
  66. data/test/TestSpamFilter.rb +33 -1
  67. data/test/TestStorage.rb +11 -0
  68. data/test/TestWeb.rb +2 -2
  69. data/test/TestWiki2Go.rb +766 -166
  70. data/test/TestWiki2GoServlet.rb +1122 -524
  71. data/test/UnitTestFiles.rb +7 -3
  72. data/test/Wiki2GoConfigForTest.rb +40 -6
  73. data/test/checksite.rb +17 -50
  74. data/test/test_firewall_blacklist.rb +131 -0
  75. data/test/test_page.rb +45 -0
  76. data/test/testdata/Registration.rbl.txt +7 -0
  77. data/test/testdata/config/url_blacklist.txt +38822 -0
  78. data/test/testdata/expected_changes.html +1 -2
  79. data/test/testdata/expected_edit.html +108 -59
  80. data/test/testdata/expected_full_rss.xml +2 -2
  81. data/test/testdata/expected_out.html +97 -61
  82. data/test/testdata/expected_put.html +88 -53
  83. data/test/testdata/expected_save.html +88 -52
  84. data/test/testdata/expected_savehtml.html +88 -52
  85. data/test/testdata/expected_search.html +68 -53
  86. data/test/testdata/expected_upload.html +88 -53
  87. data/test/testdata/expected_versions.html +97 -82
  88. data/test/testdata/expected_view.html +97 -61
  89. data/test/testdata/firewall/iptables.config +37 -0
  90. data/test/testdata/firewall/user_blacklist.txt +162 -0
  91. data/test/testdata/logs/wiki.log +652 -0
  92. data/test/testdata/logs/wiki.log.0 +113 -0
  93. data/test/testdata/logs/wiki.log.1 +113 -0
  94. data/test/testdata/logs/wiki.log.2 +113 -0
  95. data/test/testdata/logs/wiki.log.3 +115 -0
  96. data/test/testdata/logs/wiki.log.4 +5 -0
  97. data/test/testdata/logs/wiki.log.5 +7 -0
  98. data/test/testdata/logs/wiki.log.6 +5 -0
  99. data/test/testdata/logs/wiki.log.7 +118 -0
  100. data/test/testdata/logs/wiki.log.8 +12 -0
  101. data/test/testdata/site/html/Xpday/rss.xml +53 -103
  102. data/test/testdata/texts/Bugs/FrontPage.txt +6 -0
  103. data/test/testdata/texts/Bugs/NoHidden.spam +17850 -0
  104. data/test/testdata/texts/Bugs/PairProgrammingParties.spam +102 -0
  105. data/test/testdata/texts/Bugs/PairProgrammingParties.txt +99 -0
  106. metadata +53 -7
  107. data/test/TestMail.rb +0 -29
  108. data/test/gc.log +0 -2
@@ -38,7 +38,7 @@ class TestWiki2GoServlet < Test::Unit::TestCase
38
38
  assert_same_markup_strings(expected_view,response.body, { "DATE" => Time.new.strftime("%d/%m/%Y") })
39
39
  end
40
40
 
41
- def test_view_perl
41
+ def test_view_perl
42
42
 
43
43
  request = Web2Go::MockRequest.new('http://localhost:8088/view.pl/NonExistingWeb/FrontPage')
44
44
  request.authenticated = true
@@ -51,60 +51,149 @@ class TestWiki2GoServlet < Test::Unit::TestCase
51
51
  assert_same_markup_strings(expected_perl_view,response.body, { "DATE" => Time.new.strftime("%d/%m/%Y") })
52
52
  end
53
53
 
54
-
55
- def test_save
54
+ def test_save_remembers_author
56
55
 
57
56
  request = Web2Go::MockRequest.new('http://localhost:8088/save/Xpday/SavePage')
58
57
  request.add_parameter('text','The text to save')
58
+ request.add_parameter('author', 'pascal')
59
+ request.add_parameter('remember_me', 'on')
59
60
  response = Web2Go::MockResponse.new
60
61
 
61
62
  servlet = Wiki2Go::Servlet.new(@config)
62
63
 
64
+ request.request_method = 'POST'
63
65
  assert servlet.execute(request,response)
64
66
  assert_equal('text/html',response.content_type)
65
67
  assert_equal('Redirect to http://localhost:8088/view/Xpday/SavePage',response.body)
66
68
  assert_equal('http://localhost:8088/view/Xpday/SavePage',response.redirect_to)
69
+ cookie = response.cookies['Wiki2Go_user']
70
+ assert_not_nil cookie
71
+ assert_equal 'pascal',cookie.value
67
72
  end
73
+
74
+ def test_save_only_on_post
68
75
 
69
- def test_save_protected_page
76
+ request = Web2Go::MockRequest.new('http://localhost:8088/save/Xpday/SavePage')
77
+ request.add_parameter('text','The text to save')
78
+ response = Web2Go::MockResponse.new
79
+
80
+ servlet = Wiki2Go::Servlet.new(@config)
81
+
82
+ assert !servlet.execute(request,response),"Can't save on GET request"
83
+
84
+ request.request_method = 'POST'
85
+ assert servlet.execute(request,response),"Allowed to save only on POST requests"
86
+
87
+ assert_equal('text/html',response.content_type)
88
+ assert_equal('Redirect to http://localhost:8088/view/Xpday/SavePage',response.body)
89
+ assert_equal('http://localhost:8088/view/Xpday/SavePage',response.redirect_to)
90
+ end
91
+
92
+
93
+ def test_save_only_with_correct_checksum
94
+ save_page("SavePage","goodguy")
95
+ page = @config.storage.load_page("NonExistingWeb","SavePage")
96
+
97
+ @config.checksum_required = true
98
+ @config.checksum_salt = "salty chips"
99
+
100
+ request = Web2Go::MockRequest.new('http://localhost:8088/save/NonExistingWeb/SavePage')
101
+ request.request_method = 'POST'
102
+ request.add_parameter('text','The text to update')
103
+ request.add_parameter('iznorobot',page.checksum(@config.checksum_salt))
104
+ response = Web2Go::MockResponse.new
105
+
106
+
107
+ servlet = Wiki2Go::Servlet.new(@config)
108
+
109
+ assert servlet.execute(request,response),"Page accepted with good checksum"
110
+ assert_equal('text/html',response.content_type)
111
+ assert_equal('Redirect to http://localhost:8088/view/NonExistingWeb/SavePage',response.body)
112
+ assert_equal('http://localhost:8088/view/NonExistingWeb/SavePage',response.redirect_to)
113
+
114
+ end
115
+
116
+ # Test not yet active, have to decide how to handle the UI for checksum clashes
117
+ # def test_dont_save_without_correct_checksum
118
+ # request = Web2Go::MockRequest.new('http://localhost:8088/save/Xpday/SavePage')
119
+ # request.request_method = 'POST'
120
+ # request.add_parameter('text','The text to save')
121
+ # response = Web2Go::MockResponse.new
122
+ #
123
+ # @config.checksum_required = true
124
+ # @config.checksum_salt = "salty chips"
125
+ #
126
+ # servlet = Wiki2Go::Servlet.new(@config)
127
+ #
128
+ # assert !servlet.execute(request,response),"Can't save without checksum"
129
+ #
130
+ # request.add_parameter('iznorobot','checksumpje')
131
+ # assert !servlet.execute(request,response),"Can't save with incorrect checksum"
132
+ #
133
+ # end
70
134
 
135
+ def test_save_protected_page
136
+
71
137
  request = Web2Go::MockRequest.new('http://localhost:8088/save/NonExistingWeb/SavePage')
138
+ request.request_method = 'POST'
72
139
  request.add_parameter('text','some text to save saying <%= 3.to_s %> or <%= @request.parameter("reqparam","not ok")%>!')
73
140
  request.add_parameter('protected','ON')
74
141
  response = Web2Go::MockResponse.new
75
-
142
+
76
143
  servlet = Wiki2Go::Servlet.new(@config)
77
-
144
+
78
145
  assert servlet.execute(request,response)
79
146
  assert_equal('text/html',response.content_type)
80
147
  assert_equal('Redirect to http://localhost:8088/view/NonExistingWeb/SavePage',response.body)
81
148
  assert_equal('http://localhost:8088/view/NonExistingWeb/SavePage',response.redirect_to)
82
-
149
+
83
150
  request = Web2Go::MockRequest.new('http://localhost:8088/perform/NonExistingWeb/SavePage?reqparam=okay')
84
151
  request.authenticated = true
85
152
  response = Web2Go::MockResponse.new
86
-
153
+
87
154
  @config.allow_dynamic_pages = false
88
155
  servlet = Wiki2Go::Servlet.new(@config)
89
-
156
+
90
157
  assert servlet.execute(request,response)
91
-
158
+
92
159
  assert_equal('text/html',response.content_type)
93
160
  assert_same_markup_strings(expected_protected_view,response.body, { "DATE" => Time.new.strftime("%d/%m/%Y") })
94
-
161
+
95
162
  @config.allow_dynamic_pages = true
96
163
  servlet = Wiki2Go::Servlet.new(@config)
97
-
164
+
98
165
  assert servlet.execute(request,response)
99
-
166
+
100
167
  assert_equal('text/html',response.content_type)
101
168
  assert_same_markup_strings(expected_protected_perform,response.body, { "DATE" => Time.new.strftime("%d/%m/%Y") })
102
-
169
+
170
+ end
171
+
172
+ def test_mail_rublet
173
+ contents = ''
174
+ File.open(testdata('Registration.rbl.txt')) do |f|
175
+ contents = f.read
176
+ end
177
+
178
+ request = Web2Go::MockRequest.new("http://localhost:8088/save/NonExistingWeb/rublet.rbl")
179
+ request.request_method = 'POST'
180
+ request.add_parameter('text',contents)
181
+ response = Web2Go::MockResponse.new
182
+
183
+ servlet = Wiki2Go::Servlet.new(@config)
184
+ assert servlet.execute(request,response)
185
+
186
+ @config.allow_dynamic_pages = true
187
+
188
+ request = Web2Go::MockRequest.new("http://localhost:8088/view/NonExistingWeb/rublet.rbl")
189
+ assert servlet.execute(request,response)
190
+ assert_match(/5 \+ 5 = 10/,response.body)
103
191
  end
104
192
 
105
193
  def test_changes
106
194
 
107
195
  save_page('page_one','the_author')
196
+ sleep(1)
108
197
  save_page('page_two','another author')
109
198
 
110
199
  request = Web2Go::MockRequest.new('http://localhost:8088/changes/NonExistingWeb/')
@@ -116,8 +205,26 @@ class TestWiki2GoServlet < Test::Unit::TestCase
116
205
  assert_same_markup_strings(expected_changes,response.body,{ "DATE" => Time.new.strftime("%d/%m/%Y") })
117
206
  end
118
207
 
119
- def test_upload
208
+ def test_changes_with_dynamic_pages
209
+
210
+ @config.generate_html = true
211
+ save_page('page_one','the_author')
212
+ sleep(1)
213
+ save_page('page_two','another author')
214
+ sleep(1)
215
+ save_page('dynamic.rbl','another author')
216
+
217
+ request = Web2Go::MockRequest.new('http://localhost:8088/changes/NonExistingWeb/')
218
+ response = Web2Go::MockResponse.new
219
+
220
+
221
+ servlet = Wiki2Go::Servlet.new(@config)
222
+ assert servlet.execute(request,response)
223
+ assert_equal('text/html',response.content_type)
224
+ assert_same_markup_strings(expected_changes_with_dynamic_pages,response.body,{ "DATE" => Time.new.strftime("%d/%m/%Y") })
225
+ end
120
226
 
227
+ def test_upload
121
228
  request = Web2Go::MockRequest.new('http://localhost:8088/upload/NonExistingWeb/UploadPage')
122
229
  request.upload_file("FILE","image.gif","An image")
123
230
  response = Web2Go::MockResponse.new
@@ -160,7 +267,7 @@ class TestWiki2GoServlet < Test::Unit::TestCase
160
267
  def test_versions
161
268
 
162
269
  testpage = 'VersionPage'
163
- save_page(testpage,'firstuser')
270
+ save_page(testpage,'first user')
164
271
  save_page(testpage,'seconduser')
165
272
  save_page(testpage,'thirduser')
166
273
 
@@ -175,7 +282,24 @@ class TestWiki2GoServlet < Test::Unit::TestCase
175
282
  assert_same_markup_strings(expected_versions,response.body,{ "DATE" => Time.new.strftime("%d/%m/%Y") })
176
283
  end
177
284
 
178
- # Bug reported by Marc Evers: URLs with a comma in them generate and error when redirecting
285
+ def test_sidebyside
286
+ testpage = 'VersionPage'
287
+ save_page(testpage,'first user')
288
+ save_page(testpage,'seconduser')
289
+ save_page(testpage,'thirduser')
290
+
291
+ request = Web2Go::MockRequest.new("http://localhost:8088/sidebyside/NonExistingWeb/#{testpage}")
292
+ response = Web2Go::MockResponse.new
293
+
294
+ servlet = Wiki2Go::Servlet.new(@config)
295
+
296
+ assert servlet.execute(request,response)
297
+
298
+ assert_equal('text/html',response.content_type)
299
+ assert_same_markup_strings(expected_sidebyside,response.body,{ "DATE" => Time.new.strftime("%d/%m/%Y") })
300
+ end
301
+
302
+ # Bug reported by Marc Evers: URLs with a comma in them generate an error when redirecting
179
303
  def test_redirect_url_with_comma
180
304
  request = Web2Go::MockRequest.new('http://woody/redirect/Test?url=http%3A%2F%2Fwww.toolshed.com%2Fblog%2FSoftwareDevelopment%2Fsustainable_pace.html%2Cv')
181
305
  response = Web2Go::MockResponse.new
@@ -188,6 +312,7 @@ class TestWiki2GoServlet < Test::Unit::TestCase
188
312
  assert_equal('http://www.toolshed.com/blog/SoftwareDevelopment/sustainable_pace.html,v',response.redirect_to)
189
313
  end
190
314
 
315
+
191
316
  def test_generate_html
192
317
  save_page('Static1','user1')
193
318
  save_page('Static2','user2')
@@ -209,14 +334,75 @@ END_EXPECTED_STATIC_HTML
209
334
  assert_same_markup_strings(expected_static_html,response.body)
210
335
  end
211
336
 
337
+ def test_remove_spam
338
+ save_page('Static1','user')
339
+ save_page('Static1','spammer')
340
+ request = Web2Go::MockRequest.new('http://localhost:8088/removespam/NonExistingWeb?user=spammer')
341
+ response = Web2Go::MockResponse.new
342
+
343
+ servlet = Wiki2Go::Servlet.new(@config)
344
+
345
+ assert servlet.execute(request,response)
346
+ assert_equal "/changes/NonExistingWeb",response.redirect_to
347
+ end
348
+
349
+ # Page with lots of tags used to hang viewer
350
+ def test_view_hanging_spam_page
351
+
352
+ config = TestDataWiki2GoConfig.new
353
+ config.debug = true
354
+ request = Web2Go::MockRequest.new('http://localhost:8088/view/Bugs/FrontPage')
355
+ request.authenticated = true
356
+ response = Web2Go::MockResponse.new
357
+
358
+ servlet = Wiki2Go::Servlet.new(config)
359
+
360
+ assert servlet.execute(request,response)
361
+
362
+ assert_equal('text/html',response.content_type)
363
+ end
364
+
365
+ def test_refuse_pages_with_hidden_text
366
+ config = PublicTestWiki2GoConfig.new
367
+
368
+ request = Web2Go::MockRequest.new('http://localhost:8088/save/Bugs/NoHidden')
369
+ request.request_method = 'POST'
370
+ request.add_parameter('text',File.read(testdata('texts/Bugs/PairProgrammingParties.txt')))
371
+ request.authenticated = false
372
+ response = Web2Go::MockResponse.new
373
+
374
+ servlet = Wiki2Go::Servlet.new(config)
375
+
376
+ assert !servlet.execute(request,response)
377
+ assert config.tarpitted
378
+ assert response.failed?
379
+
380
+ end
381
+
382
+ def test_removing_of_spam
383
+ save_page('ok','user','completely normal')
384
+ save_page('ok','spammer','spammy')
385
+ request = Web2Go::MockRequest.new("http://localhost:8088/removespam")
386
+ request.add_parameter('user','spammer')
387
+ response = Web2Go::MockResponse.new
388
+ servlet = Wiki2Go::Servlet.new(@config)
389
+ assert servlet.execute(request,response)
390
+
391
+ request = Web2Go::MockRequest.new("http://localhost:8088/view/NonExistingWeb/ok")
392
+ servlet = Wiki2Go::Servlet.new(@config)
393
+ assert servlet.execute(request,response)
394
+ assert_match(/completely normal/,response.body)
395
+ end
396
+
212
397
  private
213
398
 
214
- def save_page(pagename,user)
399
+ def save_page(pagename,user,text='The text to save')
215
400
  request = Web2Go::MockRequest.new("http://localhost:8088/save/NonExistingWeb/#{pagename}")
216
- request.add_parameter('text','The text to save')
401
+ request.request_method = 'POST'
402
+ request.add_parameter('text',text)
217
403
  request.user = user
218
404
  response = Web2Go::MockResponse.new
219
-
405
+
220
406
  servlet = Wiki2Go::Servlet.new(@config)
221
407
  assert servlet.execute(request,response)
222
408
  end
@@ -224,390 +410,540 @@ END_EXPECTED_STATIC_HTML
224
410
 
225
411
  def expected_view
226
412
  return <<'END_EXPECTED_VIEW'
227
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
228
- <HTML>
229
- <HEAD>
230
- <BASE href="http://localhost:8088/">
231
- <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
232
- <META http-equiv="Pragma" content="no-cache">
233
- <META name="Author" content="Pascal Van Cauwenberghe">
234
- <META name="Keywords" content="ruby,wiki">
235
- <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
236
- <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
237
- <TITLE>NonExistingWeb-FrontPage</TITLE>
238
- </HEAD>
239
- <BODY>
240
- <div id="container">
241
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
242
- <TR>
243
- <TD>
244
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Header">
245
- <TR>
246
- <TD><h1><a href="/search/NonExistingWeb?text=FrontPage">FrontPage</a></h1>
247
- </TD>
248
- <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
249
- </TR>
250
- </TABLE>
251
- <TABLE border="0" cellpadding="8" cellspacing="0" width="100%" class="Body">
252
- <TR>
253
- <TD width="100%">
254
-
255
- </TD>
256
- </TR>
257
- </TABLE>
258
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
259
- <TR>
260
- <TD width="50%"><a href="/changes/NonExistingWeb">Recent changes</a></TD>
261
- <TD width="50%"><a href="/edit/NonExistingWeb/FrontPage">Edit this page</a></TD>
262
- </TR>
263
- <TR>
264
- <TD width="50%">
265
- <FORM action="/search/NonExistingWeb" method="post" id="form1" name="form1">
266
- Search: <INPUT name="text" size="30" ID="Text1">
267
- </FORM>
268
- </TD>
269
- <TD width="50%">
270
-
271
- <FORM METHOD="POST" ACTION="/upload/NonExistingWeb/FrontPage" ENCTYPE="multipart/form-data">
272
- File: <INPUT TYPE="FILE" NAME="FILE" ID="File">
273
- <INPUT TYPE="SUBMIT" VALUE="Send" ID="SendFile" NAME="SendFile">
274
- </FORM>
275
-
276
- </TD>
277
- </TR>
278
- <TR>
279
- <TD colspan="2"></TD>
280
- </TR>
281
- <TR>
282
- <td>Changed on DATE by unknown
283
- <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
284
- </td>
285
- <TD align="right">
286
- Contact the site administrator: <a href="/view/NonExistingWeb/MailFormattingRules" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
287
- <a target="_blank" href="http://validator.w3.org/check?uri=http://localhost:8088/view/NonExistingWeb/FrontPage">
288
- <img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
289
- </TD>
290
- </TR>
291
- </TABLE>
292
- </TD>
293
- </TR>
294
- </TABLE>
295
- </div>
296
- </BODY>
297
- </HTML>
413
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
414
+ <HTML>
415
+ <HEAD>
416
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
417
+ <META http-equiv="Pragma" content="no-cache">
418
+ <META name="Author" content="Pascal Van Cauwenberghe">
419
+ <META name="Keywords" content="ruby,wiki">
420
+ <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
421
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
422
+ <TITLE>
423
+
424
+ NonExistingWeb
425
+ -
426
+
427
+ FrontPage
428
+ </TITLE>
429
+ </HEAD>
430
+ <BODY>
431
+ <table id="container">
432
+ <tr>
433
+ <td colspan="2" id="header">
434
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="95%" class="Header">
435
+ <TR>
436
+ <TD><h1><a href="/search/NonExistingWeb?text=FrontPage" rel="nofollow">FrontPage</a>
437
+
438
+ </h1>
439
+ </TD>
440
+ <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
441
+ </TR>
442
+ </TABLE>
443
+ </td>
444
+ </tr>
445
+ <tr>
446
+ <td id="menu" valign="top" nowrap>
447
+
448
+ <ul>
449
+ <li>
450
+ <a href="/versions/NonExistingWeb/FrontPage" rel="nofollow">Page&nbsp;History</a>
451
+ </li>
452
+ <li>
453
+ <a href="/sidebyside/NonExistingWeb/FrontPage" rel="nofollow">What&nbsp;changed?</a>
454
+ </li>
455
+ <li>
456
+ <a href="/diff/NonExistingWeb/FrontPage" rel="nofollow">Diff</a>
457
+ </li>
458
+ <li>
459
+ <a href="/wikiedit/NonExistingWeb/FrontPage" rel="nofollow">Edit&nbsp;this&nbsp;page</a>
460
+ </li>
461
+ </ul>
462
+ <hr>
463
+
464
+ <ul>
465
+ <li>
466
+ <a href="/changes/NonExistingWeb" rel="nofollow">Recent&nbsp;changes</a>
467
+ </li>
468
+ <li>
469
+ <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
470
+ </li>
471
+ </ul>
472
+ </td>
473
+ <td id="body" width="100%" valign="top">
474
+
475
+ </td>
476
+ </tr>
477
+ <tr>
478
+ <td colspan="2" id="footer">
479
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
480
+ <TR>
481
+ <TD width="50%">
482
+
483
+ <a href="/sidebyside/NonExistingWeb/FrontPage" rel="nofollow">Changed</a>
484
+ on
485
+ DATE
486
+ by
487
+ <a href="/search/NonExistingWeb?text=unknown" rel="nofollow">unknown</a>
488
+
489
+ </TD>
490
+ <TD width="50%" align="right">
491
+ Contact the site administrator:
492
+ <a href="/view/NonExistingWeb/MailFormattingRules" rel="nofollow" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
493
+ </TD>
494
+ </TR>
495
+ <tr><td colspan="2"><hr></td></tr>
496
+ <tr>
497
+ <td><FORM action="/search/NonExistingWeb" method="post" id="search" name="search">
498
+ Search for <INPUT name="text" size="30" ID="Text1"> <input type="submit" name="Go" value="Go">
499
+ </FORM>
500
+ </td>
501
+ <td>
502
+
503
+ <FORM METHOD="POST" ACTION="/upload/NonExistingWeb/FrontPage" ENCTYPE="multipart/form-data" ID="upload">
504
+ File: <INPUT TYPE="FILE" NAME="FILE" ID="File"> <INPUT TYPE="SUBMIT" VALUE="Send" ID="SendFile" NAME="SendFile">
505
+ </FORM>
506
+
507
+ </td>
508
+ </tr>
509
+ </TABLE>
510
+ </td>
511
+ </tr>
512
+ </table>
513
+ <span style="float:right">
514
+ <a target="_blank" href="http://validator.w3.org/check?uri=http://localhost:8088/view/NonExistingWeb/FrontPage">
515
+ <img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
516
+ </span>
517
+ </BODY>
518
+ </HTML>
298
519
  END_EXPECTED_VIEW
299
520
  end
300
521
 
301
522
  def expected_protected_view
302
523
  return <<'END_EXPECTED_VIEW'
303
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
304
- <HTML>
305
- <HEAD>
306
- <BASE href="http://localhost:8088/">
307
- <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
308
- <META http-equiv="Pragma" content="no-cache">
309
- <META name="Author" content="Pascal Van Cauwenberghe">
310
- <META name="Keywords" content="ruby,wiki">
311
- <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
312
- <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
313
- <TITLE>NonExistingWeb-SavePage</TITLE>
314
- </HEAD>
315
- <BODY>
316
- <div id="container">
317
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
318
- <TR>
319
- <TD>
320
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Header">
321
- <TR>
322
- <TD><h1><a href="/search/NonExistingWeb?text=SavePage">SavePage</a></h1>
323
- </TD>
324
- <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
325
- </TR>
326
- </TABLE>
327
- <TABLE border="0" cellpadding="8" cellspacing="0" width="100%" class="Body">
328
- <TR>
329
- <TD width="100%">
330
- some text to save saying <%= 3.to_s %> or <%= @request.parameter("reqparam","not ok")%>!
331
- </TD>
332
- </TR>
333
- </TABLE>
334
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
335
- <TR>
336
- <TD width="50%"><a href="/changes/NonExistingWeb">Recent changes</a></TD>
337
- <TD width="50%"><a href="/edit/NonExistingWeb/SavePage">Edit this page</a></TD>
338
- </TR>
339
- <TR>
340
- <TD width="50%">
341
- <FORM action="/search/NonExistingWeb" method="post" id="form1" name="form1">
342
- Search: <INPUT name="text" size="30" ID="Text1">
343
- </FORM>
344
- </TD>
345
- <TD width="50%">
346
-
347
- <FORM METHOD="POST" ACTION="/upload/NonExistingWeb/SavePage" ENCTYPE="multipart/form-data">
348
- File: <INPUT TYPE="FILE" NAME="FILE" ID="File">
349
- <INPUT TYPE="SUBMIT" VALUE="Send" ID="SendFile" NAME="SendFile">
350
- </FORM>
351
-
352
- </TD>
353
- </TR>
354
- <TR>
355
- <TD colspan="2"></TD>
356
- </TR>
357
- <TR>
358
- <td>Changed on DATE by pvc
359
- <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
360
- </td>
361
- <TD align="right">
362
- Contact the site administrator: <a href="/view/NonExistingWeb/MailFormattingRules" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
363
- <a target="_blank" href="http://validator.w3.org/check?uri=http://localhost:8088/view/NonExistingWeb/SavePage">
364
- <img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
365
- </TD>
366
- </TR>
367
- </TABLE>
368
- </TD>
369
- </TR>
370
- </TABLE>
371
- </div>
372
- </BODY>
524
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
525
+ <HTML>
526
+ <HEAD>
527
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
528
+ <META http-equiv="Pragma" content="no-cache">
529
+ <META name="Author" content="Pascal Van Cauwenberghe">
530
+ <META name="Keywords" content="ruby,wiki">
531
+ <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
532
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
533
+ <TITLE>
534
+
535
+ NonExistingWeb
536
+ -
537
+
538
+ SavePage
539
+ </TITLE>
540
+ </HEAD>
541
+ <BODY>
542
+ <table id="container">
543
+ <tr>
544
+ <td colspan="2" id="header">
545
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="95%" class="Header">
546
+ <TR>
547
+ <TD><h1><a href="/search/NonExistingWeb?text=SavePage" rel="nofollow">SavePage</a>
548
+
549
+ </h1>
550
+ </TD>
551
+ <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
552
+ </TR>
553
+ </TABLE>
554
+ </td>
555
+ </tr>
556
+ <tr>
557
+ <td id="menu" valign="top" nowrap>
558
+
559
+ <ul>
560
+ <li>
561
+ <a href="/versions/NonExistingWeb/SavePage" rel="nofollow">Page&nbsp;History</a>
562
+ </li>
563
+ <li>
564
+ <a href="/sidebyside/NonExistingWeb/SavePage" rel="nofollow">What&nbsp;changed?</a>
565
+ </li>
566
+ <li>
567
+ <a href="/diff/NonExistingWeb/SavePage" rel="nofollow">Diff</a>
568
+ </li>
569
+ <li>
570
+ <a href="/wikiedit/NonExistingWeb/SavePage" rel="nofollow">Edit&nbsp;this&nbsp;page</a>
571
+ </li>
572
+ </ul>
573
+ <hr>
574
+
575
+ <ul>
576
+ <li>
577
+ <a href="/changes/NonExistingWeb" rel="nofollow">Recent&nbsp;changes</a>
578
+ </li>
579
+ <li>
580
+ <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
581
+ </li>
582
+ </ul>
583
+ </td>
584
+ <td id="body" width="100%" valign="top">
585
+ some text to save saying <%= 3.to_s %> or <%= @request.parameter("reqparam","not ok")%>!
586
+ </td>
587
+ </tr>
588
+ <tr>
589
+ <td colspan="2" id="footer">
590
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
591
+ <TR>
592
+ <TD width="50%">
593
+
594
+ <a href="/sidebyside/NonExistingWeb/SavePage" rel="nofollow">Changed</a>
595
+ on
596
+ DATE
597
+ by
598
+ <a href="/search/NonExistingWeb?text=pvc" rel="nofollow">pvc</a>
599
+
600
+ </TD>
601
+ <TD width="50%" align="right">
602
+ Contact the site administrator:
603
+ <a href="/view/NonExistingWeb/MailFormattingRules" rel="nofollow" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
604
+ </TD>
605
+ </TR>
606
+ <tr><td colspan="2"><hr></td></tr>
607
+ <tr>
608
+ <td><FORM action="/search/NonExistingWeb" method="post" id="search" name="search">
609
+ Search for <INPUT name="text" size="30" ID="Text1"> <input type="submit" name="Go" value="Go">
610
+ </FORM>
611
+ </td>
612
+ <td>
613
+
614
+ <FORM METHOD="POST" ACTION="/upload/NonExistingWeb/SavePage" ENCTYPE="multipart/form-data" ID="upload">
615
+ File: <INPUT TYPE="FILE" NAME="FILE" ID="File"> <INPUT TYPE="SUBMIT" VALUE="Send" ID="SendFile" NAME="SendFile">
616
+ </FORM>
617
+
618
+ </td>
619
+ </tr>
620
+ </TABLE>
621
+ </td>
622
+ </tr>
623
+ </table>
624
+ <span style="float:right">
625
+ <a target="_blank" href="http://validator.w3.org/check?uri=http://localhost:8088/view/NonExistingWeb/SavePage">
626
+ <img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
627
+ </span>
628
+ </BODY>
373
629
  </HTML>
374
630
  END_EXPECTED_VIEW
375
631
  end
376
632
 
377
633
  def expected_protected_perform
378
634
  return <<'END_EXPECTED_PERFORM'
379
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
380
- <HTML>
381
- <HEAD>
382
- <BASE href="http://localhost:8088/">
383
- <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
384
- <META http-equiv="Pragma" content="no-cache">
385
- <META name="Author" content="Pascal Van Cauwenberghe">
386
- <META name="Keywords" content="ruby,wiki">
387
- <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
388
- <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
389
- <TITLE>NonExistingWeb-SavePage</TITLE>
390
- </HEAD>
391
- <BODY>
392
- <div id="container">
393
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
394
- <TR>
395
- <TD>
396
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Header">
397
- <TR>
398
- <TD><h1><a href="/search/NonExistingWeb?text=SavePage">SavePage</a></h1>
399
- </TD>
400
- <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
401
- </TR>
402
- </TABLE>
403
- <TABLE border="0" cellpadding="8" cellspacing="0" width="100%" class="Body">
404
- <TR>
405
- <TD width="100%">
406
- some text to save saying 3 or okay!
407
- </TD>
408
- </TR>
409
- </TABLE>
410
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
411
- <TR>
412
- <TD width="50%"><a href="/changes/NonExistingWeb">Recent changes</a></TD>
413
- <TD width="50%"><a href="/edit/NonExistingWeb/SavePage">Edit this page</a></TD>
414
- </TR>
415
- <TR>
416
- <TD width="50%">
417
- <FORM action="/search/NonExistingWeb" method="post" id="form1" name="form1">
418
- Search: <INPUT name="text" size="30" ID="Text1">
419
- </FORM>
420
- </TD>
421
- <TD width="50%">
422
-
423
- <FORM METHOD="POST" ACTION="/upload/NonExistingWeb/SavePage" ENCTYPE="multipart/form-data">
424
- File: <INPUT TYPE="FILE" NAME="FILE" ID="File">
425
- <INPUT TYPE="SUBMIT" VALUE="Send" ID="SendFile" NAME="SendFile">
426
- </FORM>
427
-
428
- </TD>
429
- </TR>
430
- <TR>
431
- <TD colspan="2"></TD>
432
- </TR>
433
- <TR>
434
- <td>Changed on DATE by pvc
435
- <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
436
- </td>
437
- <TD align="right">
438
- Contact the site administrator: <a href="/view/NonExistingWeb/MailFormattingRules" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
439
- <a target="_blank" href="http://validator.w3.org/check?uri=http://localhost:8088/view/NonExistingWeb/SavePage">
440
- <img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
441
- </TD>
442
- </TR>
443
- </TABLE>
444
- </TD>
445
- </TR>
446
- </TABLE>
447
- </div>
448
- </BODY>
635
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
636
+ <HTML>
637
+ <HEAD>
638
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
639
+ <META http-equiv="Pragma" content="no-cache">
640
+ <META name="Author" content="Pascal Van Cauwenberghe">
641
+ <META name="Keywords" content="ruby,wiki">
642
+ <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
643
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
644
+ <TITLE>
645
+
646
+ NonExistingWeb
647
+ -
648
+
649
+ SavePage
650
+ </TITLE>
651
+ </HEAD>
652
+ <BODY>
653
+ <table id="container">
654
+ <tr>
655
+ <td colspan="2" id="header">
656
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="95%" class="Header">
657
+ <TR>
658
+ <TD><h1><a href="/search/NonExistingWeb?text=SavePage" rel="nofollow">SavePage</a>
659
+
660
+ </h1>
661
+ </TD>
662
+ <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
663
+ </TR>
664
+ </TABLE>
665
+ </td>
666
+ </tr>
667
+ <tr>
668
+ <td id="menu" valign="top" nowrap>
669
+
670
+ <ul>
671
+ <li>
672
+ <a href="/versions/NonExistingWeb/SavePage" rel="nofollow">Page&nbsp;History</a>
673
+ </li>
674
+ <li>
675
+ <a href="/sidebyside/NonExistingWeb/SavePage" rel="nofollow">What&nbsp;changed?</a>
676
+ </li>
677
+ <li>
678
+ <a href="/diff/NonExistingWeb/SavePage" rel="nofollow">Diff</a>
679
+ </li>
680
+ <li>
681
+ <a href="/wikiedit/NonExistingWeb/SavePage" rel="nofollow">Edit&nbsp;this&nbsp;page</a>
682
+ </li>
683
+ </ul>
684
+ <hr>
685
+
686
+ <ul>
687
+ <li>
688
+ <a href="/changes/NonExistingWeb" rel="nofollow">Recent&nbsp;changes</a>
689
+ </li>
690
+ <li>
691
+ <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
692
+ </li>
693
+ </ul>
694
+ </td>
695
+ <td id="body" width="100%" valign="top">
696
+ some text to save saying 3 or okay!
697
+ </td>
698
+ </tr>
699
+ <tr>
700
+ <td colspan="2" id="footer">
701
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
702
+ <TR>
703
+ <TD width="50%">
704
+
705
+ <a href="/sidebyside/NonExistingWeb/SavePage" rel="nofollow">Changed</a>
706
+ on
707
+ DATE
708
+ by
709
+ <a href="/search/NonExistingWeb?text=pvc" rel="nofollow">pvc</a>
710
+
711
+ </TD>
712
+ <TD width="50%" align="right">
713
+ Contact the site administrator:
714
+ <a href="/view/NonExistingWeb/MailFormattingRules" rel="nofollow" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
715
+ </TD>
716
+ </TR>
717
+ <tr><td colspan="2"><hr></td></tr>
718
+ <tr>
719
+ <td><FORM action="/search/NonExistingWeb" method="post" id="search" name="search">
720
+ Search for <INPUT name="text" size="30" ID="Text1"> <input type="submit" name="Go" value="Go">
721
+ </FORM>
722
+ </td>
723
+ <td>
724
+
725
+ <FORM METHOD="POST" ACTION="/upload/NonExistingWeb/SavePage" ENCTYPE="multipart/form-data" ID="upload">
726
+ File: <INPUT TYPE="FILE" NAME="FILE" ID="File"> <INPUT TYPE="SUBMIT" VALUE="Send" ID="SendFile" NAME="SendFile">
727
+ </FORM>
728
+
729
+ </td>
730
+ </tr>
731
+ </TABLE>
732
+ </td>
733
+ </tr>
734
+ </table>
735
+ <span style="float:right">
736
+ <a target="_blank" href="http://validator.w3.org/check?uri=http://localhost:8088/view/NonExistingWeb/SavePage">
737
+ <img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
738
+ </span>
739
+ </BODY>
449
740
  </HTML>
450
741
  END_EXPECTED_PERFORM
451
742
  end
452
743
 
453
744
  def expected_perl_view
454
745
  return <<'END_EXPECTED_VIEW'
455
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
456
- <HTML>
457
- <HEAD>
458
- <BASE href="http://localhost:8088/">
459
- <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
460
- <META http-equiv="Pragma" content="no-cache">
461
- <META name="Author" content="Pascal Van Cauwenberghe">
462
- <META name="Keywords" content="ruby,wiki">
463
- <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
464
- <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
465
- <TITLE>NonExistingWeb-FrontPage</TITLE>
466
- </HEAD>
467
- <BODY>
468
- <div id="container">
469
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
470
- <TR>
471
- <TD>
472
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Header">
473
- <TR>
474
- <TD><h1><a href="/search.pl/NonExistingWeb?text=FrontPage">FrontPage</a></h1>
475
- </TD>
476
- <td align="right"><a href="/view.pl/NonExistingWeb/FrontPage">Home</a></td>
477
- </TR>
478
- </TABLE>
479
- <TABLE border="0" cellpadding="8" cellspacing="0" width="100%" class="Body">
480
- <TR>
481
- <TD width="100%">
482
-
483
- </TD>
484
- </TR>
485
- </TABLE>
486
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
487
- <TR>
488
- <TD width="50%"><a href="/changes.pl/NonExistingWeb">Recent changes</a></TD>
489
- <TD width="50%"><a href="/edit.pl/NonExistingWeb/FrontPage">Edit this page</a></TD>
490
- </TR>
491
- <TR>
492
- <TD width="50%">
493
- <FORM action="/search.pl/NonExistingWeb" method="post" id="form1" name="form1">
494
- Search: <INPUT name="text" size="30" ID="Text1">
495
- </FORM>
496
- </TD>
497
- <TD width="50%">
498
-
499
- <FORM METHOD="POST" ACTION="/upload.pl/NonExistingWeb/FrontPage" ENCTYPE="multipart/form-data">
500
- File: <INPUT TYPE="FILE" NAME="FILE" ID="File">
501
- <INPUT TYPE="SUBMIT" VALUE="Send" ID="SendFile" NAME="SendFile">
502
- </FORM>
503
-
504
- </TD>
505
- </TR>
506
- <TR>
507
- <TD colspan="2"></TD>
508
- </TR>
509
- <TR>
510
- <td>Changed on DATE by unknown
511
- <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
512
- </td>
513
- <TD align="right">
514
- Contact the site administrator: <a href="/view.pl/NonExistingWeb/MailFormattingRules" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
515
- <a target="_blank" href="http://validator.w3.org/check?uri=http://localhost:8088/view.pl/NonExistingWeb/FrontPage">
516
- <img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
517
- </TD>
518
- </TR>
519
- </TABLE>
520
- </TD>
521
- </TR>
522
- </TABLE>
523
- </div>
524
- </BODY>
746
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
747
+ <HTML>
748
+ <HEAD>
749
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
750
+ <META http-equiv="Pragma" content="no-cache">
751
+ <META name="Author" content="Pascal Van Cauwenberghe">
752
+ <META name="Keywords" content="ruby,wiki">
753
+ <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
754
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
755
+ <TITLE>
756
+
757
+ NonExistingWeb
758
+ -
759
+
760
+ FrontPage
761
+ </TITLE>
762
+ </HEAD>
763
+ <BODY>
764
+ <table id="container">
765
+ <tr>
766
+ <td colspan="2" id="header">
767
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="95%" class="Header">
768
+ <TR>
769
+ <TD><h1><a href="/search.pl/NonExistingWeb?text=FrontPage" rel="nofollow">FrontPage</a>
770
+
771
+ </h1>
772
+ </TD>
773
+ <td align="right"><a href="/view.pl/NonExistingWeb/FrontPage">Home</a></td>
774
+ </TR>
775
+ </TABLE>
776
+ </td>
777
+ </tr>
778
+ <tr>
779
+ <td id="menu" valign="top" nowrap>
780
+
781
+ <ul>
782
+ <li>
783
+ <a href="/versions.pl/NonExistingWeb/FrontPage" rel="nofollow">Page&nbsp;History</a>
784
+ </li>
785
+ <li>
786
+ <a href="/sidebyside.pl/NonExistingWeb/FrontPage" rel="nofollow">What&nbsp;changed?</a>
787
+ </li>
788
+ <li>
789
+ <a href="/diff.pl/NonExistingWeb/FrontPage" rel="nofollow">Diff</a>
790
+ </li>
791
+ <li>
792
+ <a href="/wikiedit.pl/NonExistingWeb/FrontPage" rel="nofollow">Edit&nbsp;this&nbsp;page</a>
793
+ </li>
794
+ </ul>
795
+ <hr>
796
+
797
+ <ul>
798
+ <li>
799
+ <a href="/changes.pl/NonExistingWeb" rel="nofollow">Recent&nbsp;changes</a>
800
+ </li>
801
+ <li>
802
+ <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
803
+ </li>
804
+ </ul>
805
+ </td>
806
+ <td id="body" width="100%" valign="top">
807
+
808
+ </td>
809
+ </tr>
810
+ <tr>
811
+ <td colspan="2" id="footer">
812
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
813
+ <TR>
814
+ <TD width="50%">
815
+
816
+ <a href="/sidebyside.pl/NonExistingWeb/FrontPage" rel="nofollow">Changed</a>
817
+ on
818
+ DATE
819
+ by
820
+ <a href="/search.pl/NonExistingWeb?text=unknown" rel="nofollow">unknown</a>
821
+
822
+ </TD>
823
+ <TD width="50%" align="right">
824
+ Contact the site administrator:
825
+ <a href="/view.pl/NonExistingWeb/MailFormattingRules" rel="nofollow" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
826
+ </TD>
827
+ </TR>
828
+ <tr><td colspan="2"><hr></td></tr>
829
+ <tr>
830
+ <td><FORM action="/search.pl/NonExistingWeb" method="post" id="search" name="search">
831
+ Search for <INPUT name="text" size="30" ID="Text1"> <input type="submit" name="Go" value="Go">
832
+ </FORM>
833
+ </td>
834
+ <td>
835
+
836
+ <FORM METHOD="POST" ACTION="/upload.pl/NonExistingWeb/FrontPage" ENCTYPE="multipart/form-data" ID="upload">
837
+ File: <INPUT TYPE="FILE" NAME="FILE" ID="File"> <INPUT TYPE="SUBMIT" VALUE="Send" ID="SendFile" NAME="SendFile">
838
+ </FORM>
839
+
840
+ </td>
841
+ </tr>
842
+ </TABLE>
843
+ </td>
844
+ </tr>
845
+ </table>
846
+ <span style="float:right">
847
+ <a target="_blank" href="http://validator.w3.org/check?uri=http://localhost:8088/view.pl/NonExistingWeb/FrontPage">
848
+ <img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
849
+ </span>
850
+ </BODY>
525
851
  </HTML>
526
852
  END_EXPECTED_VIEW
527
853
  end
528
854
 
529
855
  def expected_versions
530
856
  return <<END_EXPECTED_VERSIONS
531
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
532
- <HTML>
533
- <HEAD>
534
- <BASE href="http://localhost:8088/">
535
- <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
536
- <META http-equiv="Pragma" content="no-cache">
537
- <META name="Author" content="Pascal Van Cauwenberghe">
538
- <META name="Keywords" content="ruby,wiki">
539
- <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
540
- <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
541
- <TITLE>Versions of 'VersionPage'</TITLE>
542
- </HEAD>
543
- <BODY>
544
- <div id="container">
545
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
546
- <TR>
547
- <TD>
548
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Header">
549
- <TR>
550
- <TD><H1>Versions of 'VersionPage'</H1></TD>
551
- <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
552
- </TR>
553
- </TABLE>
554
- <TABLE border="0" cellpadding="0" cellspacing="8" width="100%" class="Body">
555
- <TR>
556
- <TD width="100%">
557
- <TABLE border="0" width="100%">
558
- <TR>
559
- <td>
560
- <table class="topiclist">
561
-
562
- <tr class="even">
563
- <td class="date">DATE</td>
564
- <td class="author">thirduser</td>
565
- <td><a href="/view/NonExistingWeb/VersionPage?version=2">view</a></td>
566
-
567
- </tr>
568
-
569
- <tr class="odd">
570
- <td class="date">&nbsp;</td>
571
- <td class="author">seconduser</td>
572
- <td><a href="/view/NonExistingWeb/VersionPage?version=1">view</a></td>
573
-
574
- </tr>
575
-
576
- <tr class="even">
577
- <td class="date">&nbsp;</td>
578
- <td class="author">firstuser</td>
579
- <td><a href="/view/NonExistingWeb/VersionPage?version=0">view</a></td>
857
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
858
+ <HTML>
859
+ <HEAD>
860
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
861
+ <META http-equiv="Pragma" content="no-cache">
862
+ <META name="Author" content="Pascal Van Cauwenberghe">
863
+ <META name="Keywords" content="ruby,wiki">
864
+ <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
865
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
866
+ <META name="robots" content="noindex,nofollow">
867
+ <TITLE>
868
+ Versions of 'VersionPage'
869
+ </TITLE>
870
+ </HEAD>
871
+ <BODY>
872
+ <table id="container">
873
+ <tr>
874
+ <td colspan="2" id="header">
875
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="95%" class="Header">
876
+ <TR>
877
+ <TD><H1>Versions of 'VersionPage'</H1>
878
+ </TD>
879
+ <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
880
+ </TR>
881
+ </TABLE>
882
+ </td>
883
+ </tr>
884
+ <tr>
885
+ <td id="menu" valign="top" nowrap>
886
+
887
+ <ul>
888
+ <li>
889
+ <a href="/changes/NonExistingWeb" rel="nofollow">Recent&nbsp;changes</a>
890
+ </li>
891
+ <li>
892
+ <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
893
+ </li>
894
+ </ul>
895
+ </td>
896
+ <td id="body" width="100%" valign="top">
897
+ <TABLE border="0" width="100%">
898
+ <TR>
899
+ <td>
900
+ <table class="topiclist">
901
+
902
+ <tr class="even">
903
+ <td class="date">DATE</td>
904
+ <td class="topic"><a href="/view/NonExistingWeb/VersionPage?version=0">VersionPage</a></td>
905
+ <td class="author"><a href="/search/NonExistingWeb?text=first+user" rel="nofollow">first user</a></td>
906
+ <td class="topic"></td>
907
+ <td class="topic"></td>
580
908
 
581
- </tr>
582
-
583
- </table>
584
- </td>
585
- </TR>
586
- </TABLE>
587
- </TD>
588
- </TR>
589
- </TABLE>
590
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer" ID="Table1">
591
- <TR>
592
- <TD width="50%"><a href="/changes/NonExistingWeb">Recent changes</a></TD>
593
- <TD width="50%">
594
- <FORM action="/search/NonExistingWeb" method="post" id="form1" name="form1">
595
- Search: <INPUT name="text" size="30" ID="Text1">
596
- </FORM>
597
- </TD>
598
- </TR>
599
- <TR>
600
- <td><a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep informed"></a></td>
601
- <TD align="right">
602
- Contact the site administrator: <a href="/view/NonExistingWeb/MailFormattingRules" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
603
- </TD>
604
- </TR>
605
- </TABLE>
606
- </TD>
607
- </TR>
608
- </TABLE>
609
- </div>
610
- </BODY>
909
+ </tr>
910
+
911
+ </table>
912
+ </td>
913
+ </TR>
914
+ </TABLE>
915
+ </td>
916
+ </tr>
917
+ <tr>
918
+ <td colspan="2" id="footer">
919
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
920
+ <TR>
921
+ <TD width="50%">
922
+
923
+ &nbsp;
924
+
925
+ </TD>
926
+ <TD width="50%" align="right">
927
+ Contact the site administrator:
928
+ <a href="/view/NonExistingWeb/MailFormattingRules" rel="nofollow" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
929
+ </TD>
930
+ </TR>
931
+ <tr><td colspan="2"><hr></td></tr>
932
+ <tr>
933
+ <td><FORM action="/search/NonExistingWeb" method="post" id="search" name="search">
934
+ Search for <INPUT name="text" size="30" ID="Text1"> <input type="submit" name="Go" value="Go">
935
+ </FORM>
936
+ </td>
937
+ <td>
938
+
939
+ </td>
940
+ </tr>
941
+ </TABLE>
942
+ </td>
943
+ </tr>
944
+
945
+ </table>
946
+ </BODY>
611
947
  </HTML>
612
948
  END_EXPECTED_VERSIONS
613
949
 
@@ -615,154 +951,416 @@ END_EXPECTED_VERSIONS
615
951
 
616
952
  def expected_changes
617
953
  return <<'END_EXPECTED_CHANGES'
618
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
619
- <HTML>
620
- <HEAD>
621
- <BASE href="http://localhost:8088/">
622
- <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
623
- <META http-equiv="Pragma" content="no-cache">
624
- <META name="Author" content="Pascal Van Cauwenberghe">
625
- <META name="Keywords" content="ruby,wiki">
626
- <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
627
- <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
628
- <TITLE>Recent Changes</TITLE>
629
- </HEAD>
630
- <BODY>
631
- <div id="container">
632
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
633
- <TR>
634
- <TD>
635
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Header">
636
- <TR>
637
- <TD><H1>Recent Changes</H1></TD>
638
- <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
639
- </TR>
640
- </TABLE>
641
- <TABLE border="0" cellpadding="0" cellspacing="8" width="100%" class="Body">
642
- <TR>
643
- <TD width="100%">
644
- <TABLE border="0" width="100%">
645
- <TR>
646
- <td>
647
- <table class="topiclist">
648
-
649
- <tr class="even">
650
- <td class="date">DATE</td>
651
- <td class="topic"><a href="/view/NonExistingWeb/page_one">page_one</a></td>
652
- <td class="author">the_author</td>
653
-
654
- </tr>
655
-
656
- <tr class="odd">
657
- <td class="date">&nbsp;</td>
658
- <td class="topic"><a href="/view/NonExistingWeb/page_two">page_two</a></td>
659
- <td class="author">another author</td>
660
-
661
- </tr>
662
-
663
- </table>
664
- </td>
665
- </TR>
666
- </TABLE>
667
- </TD>
668
- </TR>
669
- </TABLE>
670
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer" ID="Table1">
671
- <TR>
672
- <TD width="50%"><a href="/changes/NonExistingWeb">Recent changes</a></TD>
673
- <TD width="50%">
674
- <FORM action="/search/NonExistingWeb" method="post" id="form1" name="form1">
675
- Search: <INPUT name="text" size="30" ID="Text1">
676
- </FORM>
677
- </TD>
678
- </TR>
679
- <TR>
680
- <td><a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep informed"></a></td>
681
- <TD align="right">
682
- Contact the site administrator: <a href="/view/NonExistingWeb/MailFormattingRules" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
683
- </TD>
684
- </TR>
685
- </TABLE>
686
- </TD>
687
- </TR>
688
- </TABLE>
689
- </div>
690
- </BODY>
954
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
955
+ <HTML>
956
+ <HEAD>
957
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
958
+ <META http-equiv="Pragma" content="no-cache">
959
+ <META name="Author" content="Pascal Van Cauwenberghe">
960
+ <META name="Keywords" content="ruby,wiki">
961
+ <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
962
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
963
+ <TITLE>
964
+ Recent Changes
965
+ </TITLE>
966
+ </HEAD>
967
+ <BODY>
968
+ <table id="container">
969
+ <TR>
970
+ <TD colspan="2" id="header">
971
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="95%" class="Header">
972
+ <TR>
973
+ <TD><H1>Recent Changes</H1>
974
+ </TD>
975
+ <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
976
+ </TR>
977
+ </TABLE>
978
+ </TD>
979
+ </TR>
980
+ <tr>
981
+ <td id="menu" valign="top" nowrap>
982
+
983
+ <ul>
984
+ <li>
985
+ <a href="/changes/NonExistingWeb" rel="nofollow">Recent&nbsp;changes</a>
986
+ </li>
987
+ <li>
988
+ <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
989
+ </li>
990
+ </ul>
991
+ </td>
992
+ <td id="body" width="100%" valign="top">
993
+ <table class="topiclist">
994
+
995
+ <tr class="even">
996
+ <td class="date">DATE</td>
997
+ <td class="topic"><a href="/view/NonExistingWeb/page_two">page_two</a></td>
998
+ <td class="author"><a href="/search/NonExistingWeb?text=another+author" rel="nofollow">another author</a></td>
999
+ <td class="author"><a href="/versions/NonExistingWeb/page_two" rel="nofollow">History</a></td>
1000
+
1001
+ </tr>
1002
+
1003
+ <tr class="odd">
1004
+ <td class="date">&nbsp;</td>
1005
+ <td class="topic"><a href="/view/NonExistingWeb/page_one">page_one</a></td>
1006
+ <td class="author"><a href="/search/NonExistingWeb?text=the_author" rel="nofollow">the_author</a></td>
1007
+ <td class="author"><a href="/versions/NonExistingWeb/page_one" rel="nofollow">History</a></td>
1008
+
1009
+ </tr>
1010
+
1011
+ </table>
1012
+ </td>
1013
+ </tr>
1014
+ <tr>
1015
+ <td colspan="2" id="footer">
1016
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
1017
+ <TR>
1018
+ <TD width="50%">
1019
+
1020
+ &nbsp;
1021
+
1022
+ </TD>
1023
+ <TD width="50%" align="right">
1024
+ Contact the site administrator:
1025
+ <a href="/view/NonExistingWeb/MailFormattingRules" rel="nofollow" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
1026
+ </TD>
1027
+ </TR>
1028
+ <tr><td colspan="2"><hr></td></tr>
1029
+ <tr>
1030
+ <td><FORM action="/search/NonExistingWeb" method="post" id="search" name="search">
1031
+ Search for <INPUT name="text" size="30" ID="Text1"> <input type="submit" name="Go" value="Go">
1032
+ </FORM>
1033
+ </td>
1034
+ <td>
1035
+
1036
+ </td>
1037
+ </tr>
1038
+ </TABLE>
1039
+ </td>
1040
+ </tr>
1041
+ </table>
1042
+ </BODY>
691
1043
  </HTML>
692
1044
  END_EXPECTED_CHANGES
693
1045
 
694
- end
1046
+ end
695
1047
 
696
- def expected_upload
697
- return <<END_EXPECTED_UPLOAD
698
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
699
- <HTML>
700
- <HEAD>
701
- <BASE href="http://localhost:8088/">
702
- <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
703
- <META http-equiv="Pragma" content="no-cache">
704
- <META name="Author" content="Pascal Van Cauwenberghe">
705
- <META name="Keywords" content="ruby,wiki">
706
- <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
707
- <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
708
- <TITLE>NonExistingWeb-UploadPage</TITLE>
709
- </HEAD>
710
- <BODY>
711
- <div id="container">
712
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
713
- <TR>
714
- <TD>
715
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Header">
716
- <TR>
717
- <TD><h1><a href="/search/NonExistingWeb?text=UploadPage">UploadPage</a></h1>
718
- </TD>
719
- <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
720
- </TR>
721
- </TABLE>
722
- <TABLE border="0" cellpadding="8" cellspacing="0" width="100%" class="Body">
723
- <TR>
724
- <TD width="100%">
725
- <p>
726
- <hr>
727
- <img src="/html/NonExistingWeb/image.gif" border=0 alt="image" >
728
- </TD>
729
- </TR>
730
- </TABLE>
731
- <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
732
- <TR>
733
- <TD width="50%"><a href="/changes/NonExistingWeb">Recent changes</a></TD>
734
- <TD width="50%"><a href="/edit/NonExistingWeb/UploadPage">Edit this page</a></TD>
735
- </TR>
736
- <TR>
737
- <TD width="50%">
738
- <FORM action="/search/NonExistingWeb" method="post" id="form1" name="form1">
739
- Search: <INPUT name="text" size="30" ID="Text1">
740
- </FORM>
741
- </TD>
742
- <TD width="50%">
743
-
744
- </TD>
745
- </TR>
746
- <TR>
747
- <TD colspan="2"></TD>
748
- </TR>
749
- <TR>
750
- <td>Changed on DATE by pvc
751
- <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
752
- </td>
753
- <TD align="right">
754
- Contact the site administrator: <a href="/view/NonExistingWeb/MailFormattingRules" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
755
- <a target="_blank" href="http://validator.w3.org/check?uri=http://localhost:8088/view/NonExistingWeb/UploadPage">
756
- <img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
757
- </TD>
758
- </TR>
759
- </TABLE>
760
- </TD>
761
- </TR>
762
- </TABLE>
763
- </div>
764
- </BODY>
1048
+ def expected_changes_with_dynamic_pages
1049
+ return <<'END_EXPECTED_CHANGES'
1050
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
1051
+ <HTML>
1052
+ <HEAD>
1053
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
1054
+ <META http-equiv="Pragma" content="no-cache">
1055
+ <META name="Author" content="Pascal Van Cauwenberghe">
1056
+ <META name="Keywords" content="ruby,wiki">
1057
+ <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
1058
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
1059
+ <TITLE>
1060
+ Recent Changes
1061
+ </TITLE>
1062
+ </HEAD>
1063
+ <BODY>
1064
+ <table id="container">
1065
+ <TR>
1066
+ <TD colspan="2" id="header">
1067
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="95%" class="Header">
1068
+ <TR>
1069
+ <TD><H1>Recent Changes</H1>
1070
+ </TD>
1071
+ <td align="right"><a href="/NonExistingWeb/FrontPage.html">Home</a></td>
1072
+ </TR>
1073
+ </TABLE>
1074
+ </TD>
1075
+ </TR>
1076
+ <tr>
1077
+ <td id="menu" valign="top" nowrap>
1078
+
1079
+ <ul>
1080
+ <li>
1081
+ <a href="/NonExistingWeb/recent_changes.html" rel="nofollow">Recent&nbsp;changes</a>
1082
+ </li>
1083
+ <li>
1084
+ <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
1085
+ </li>
1086
+ </ul>
1087
+ </td>
1088
+ <td id="body" width="100%" valign="top">
1089
+ <table class="topiclist">
1090
+
1091
+ <tr class="even">
1092
+ <td class="date">DATE</td>
1093
+ <td class="topic"><a href="/view/NonExistingWeb/dynamic.rbl">dynamic.rbl</a></td>
1094
+ <td class="author"><a href="/search/NonExistingWeb?text=another+author" rel="nofollow">another author</a></td>
1095
+ <td class="author"><a href="/versions/NonExistingWeb/dynamic.rbl" rel="nofollow">History</a></td>
1096
+
1097
+ </tr>
1098
+
1099
+ <tr class="odd">
1100
+ <td class="date">&nbsp;</td>
1101
+ <td class="topic"><a href="/NonExistingWeb/page_two.html">page_two</a></td>
1102
+ <td class="author"><a href="/search/NonExistingWeb?text=another+author" rel="nofollow">another author</a></td>
1103
+ <td class="author"><a href="/versions/NonExistingWeb/page_two" rel="nofollow">History</a></td>
1104
+ </tr>
1105
+
1106
+ <tr class="even">
1107
+ <td class="date">&nbsp;</td>
1108
+ <td class="topic"><a href="/NonExistingWeb/page_one.html">page_one</a></td>
1109
+ <td class="author"><a href="/search/NonExistingWeb?text=the_author" rel="nofollow">the_author</a></td>
1110
+ <td class="author"><a href="/versions/NonExistingWeb/page_one" rel="nofollow">History</a></td>
1111
+ </tr>
1112
+
1113
+ </table>
1114
+ </td>
1115
+ </tr>
1116
+ <tr>
1117
+ <td colspan="2" id="footer">
1118
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
1119
+ <TR>
1120
+ <TD width="50%">
1121
+
1122
+ &nbsp;
1123
+
1124
+ </TD>
1125
+ <TD width="50%" align="right">
1126
+ Contact the site administrator:
1127
+ <a href="/NonExistingWeb/MailFormattingRules.html" rel="nofollow" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
1128
+ </TD>
1129
+ </TR>
1130
+ <tr><td colspan="2"><hr></td></tr>
1131
+ <tr>
1132
+ <td><FORM action="/search/NonExistingWeb" method="post" id="search" name="search">
1133
+ Search for <INPUT name="text" size="30" ID="Text1"> <input type="submit" name="Go" value="Go">
1134
+ </FORM>
1135
+ </td>
1136
+ <td>
1137
+
1138
+ </td>
1139
+ </tr>
1140
+ </TABLE>
1141
+ </td>
1142
+ </tr>
1143
+ </table>
1144
+ </BODY>
1145
+ </HTML>
1146
+ END_EXPECTED_CHANGES
1147
+
1148
+ end
1149
+
1150
+ def expected_upload
1151
+ return <<END_EXPECTED_UPLOAD
1152
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
1153
+ <HTML>
1154
+ <HEAD>
1155
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
1156
+ <META http-equiv="Pragma" content="no-cache">
1157
+ <META name="Author" content="Pascal Van Cauwenberghe">
1158
+ <META name="Keywords" content="ruby,wiki">
1159
+ <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
1160
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
1161
+ <TITLE>
1162
+
1163
+ NonExistingWeb
1164
+ -
1165
+
1166
+ UploadPage
1167
+ </TITLE>
1168
+ </HEAD>
1169
+ <BODY>
1170
+ <table id="container">
1171
+ <tr>
1172
+ <td colspan="2" id="header">
1173
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="95%" class="Header">
1174
+ <TR>
1175
+ <TD><h1><a href="/search/NonExistingWeb?text=UploadPage" rel="nofollow">UploadPage</a>
1176
+
1177
+ </h1>
1178
+ </TD>
1179
+ <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
1180
+ </TR>
1181
+ </TABLE>
1182
+ </td>
1183
+ </tr>
1184
+ <tr>
1185
+ <td id="menu" valign="top" nowrap>
1186
+
1187
+ <ul>
1188
+ <li>
1189
+ <a href="/versions/NonExistingWeb/UploadPage" rel="nofollow">Page&nbsp;History</a>
1190
+ </li>
1191
+ <li>
1192
+ <a href="/sidebyside/NonExistingWeb/UploadPage" rel="nofollow">What&nbsp;changed?</a>
1193
+ </li>
1194
+ <li>
1195
+ <a href="/diff/NonExistingWeb/UploadPage" rel="nofollow">Diff</a>
1196
+ </li>
1197
+ <li>
1198
+ <a href="/wikiedit/NonExistingWeb/UploadPage" rel="nofollow">Edit&nbsp;this&nbsp;page</a>
1199
+ </li>
1200
+ </ul>
1201
+ <hr>
1202
+
1203
+ <ul>
1204
+ <li>
1205
+ <a href="/changes/NonExistingWeb" rel="nofollow">Recent&nbsp;changes</a>
1206
+ </li>
1207
+ <li>
1208
+ <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
1209
+ </li>
1210
+ </ul>
1211
+ </td>
1212
+ <td id="body" width="100%" valign="top">
1213
+ <p>
1214
+ <hr>
1215
+ <img src="/html/NonExistingWeb/image.gif" border=0 alt="image" >
1216
+ </td>
1217
+ </tr>
1218
+ <tr>
1219
+ <td colspan="2" id="footer">
1220
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
1221
+ <TR>
1222
+ <TD width="50%">
1223
+
1224
+ <a href="/sidebyside/NonExistingWeb/UploadPage" rel="nofollow">Changed</a>
1225
+ on
1226
+ DATE
1227
+ by
1228
+ <a href="/search/NonExistingWeb?text=pvc" rel="nofollow">pvc</a>
1229
+
1230
+ </TD>
1231
+ <TD width="50%" align="right">
1232
+ Contact the site administrator:
1233
+ <a href="/view/NonExistingWeb/MailFormattingRules" rel="nofollow" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
1234
+ </TD>
1235
+ </TR>
1236
+ <tr><td colspan="2"><hr></td></tr>
1237
+ <tr>
1238
+ <td><FORM action="/search/NonExistingWeb" method="post" id="search" name="search">
1239
+ Search for <INPUT name="text" size="30" ID="Text1"> <input type="submit" name="Go" value="Go">
1240
+ </FORM>
1241
+ </td>
1242
+ <td>
1243
+
1244
+ </td>
1245
+ </tr>
1246
+ </TABLE>
1247
+ </td>
1248
+ </tr>
1249
+ </table>
1250
+ <span style="float:right">
1251
+ <a target="_blank" href="http://validator.w3.org/check?uri=http://localhost:8088/view/NonExistingWeb/UploadPage">
1252
+ <img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
1253
+ </span>
1254
+ </BODY>
765
1255
  </HTML>
766
1256
  END_EXPECTED_UPLOAD
767
- end
1257
+ end
1258
+
1259
+ def expected_sidebyside
1260
+ return <<END_EXPECTED_SIDEBYSIDE
1261
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
1262
+ <HTML>
1263
+ <HEAD>
1264
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
1265
+ <META http-equiv="Pragma" content="no-cache">
1266
+ <META name="Author" content="Pascal Van Cauwenberghe">
1267
+ <META name="Keywords" content="ruby,wiki">
1268
+ <LINK rel="stylesheet" href="/html/NonExistingWeb/style.css" type="text/css">
1269
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="/html/NonExistingWeb/rss.xml">
1270
+ <TITLE>
1271
+
1272
+ NonExistingWeb
1273
+ -
1274
+
1275
+ VersionPage
1276
+ </TITLE>
1277
+ </HEAD>
1278
+ <BODY>
1279
+ <table id="container">
1280
+ <tr>
1281
+ <td colspan="2" id="header">
1282
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="95%" class="Header">
1283
+ <TR>
1284
+ <TD><h1><a href="/search/NonExistingWeb?text=VersionPage" rel="nofollow">VersionPage</a>
1285
+
1286
+ </h1>
1287
+ </TD>
1288
+ <td align="right"><a href="/view/NonExistingWeb/FrontPage">Home</a></td>
1289
+ </TR>
1290
+ </TABLE>
1291
+ </td>
1292
+ </tr>
1293
+ <tr>
1294
+ <td id="menu" valign="top" nowrap>
1295
+
1296
+ <ul>
1297
+ <li>
1298
+ <a href="/versions/NonExistingWeb/VersionPage" rel="nofollow">Page&nbsp;History</a>
1299
+ </li>
1300
+ <li>
1301
+ <a href="/sidebyside/NonExistingWeb/VersionPage" rel="nofollow">What&nbsp;changed?</a>
1302
+ </li>
1303
+ <li>
1304
+ <a href="/diff/NonExistingWeb/VersionPage" rel="nofollow">Diff</a>
1305
+ </li>
1306
+ <li>
1307
+ <a href="/wikiedit/NonExistingWeb/VersionPage" rel="nofollow">Edit&nbsp;this&nbsp;page</a>
1308
+ </li>
1309
+ </ul>
1310
+ <hr>
1311
+
1312
+ <ul>
1313
+ <li>
1314
+ <a href="/changes/NonExistingWeb" rel="nofollow">Recent&nbsp;changes</a>
1315
+ </li>
1316
+ <li>
1317
+ <a href="/html/NonExistingWeb/rss.xml"><img src="/html/rssLogo.png" width="36" height="14" border="0" alt="Keep up to date"></a>
1318
+ </li>
1319
+ </ul>
1320
+ </td>
1321
+ <td id="body" width="100%" valign="top">
1322
+ <table class="wikitable" width="100%"><tr><th><a href="/view/NonExistingWeb/VersionPage?version=0">VersionPage v0 (by first user)</a></th><th><a href="/view/NonExistingWeb/VersionPage?version=0">VersionPage v0 (by first user)</a> <a href="/sidebyside/NonExistingWeb/VersionPage?from=0&amp;to=1" rel="nofollow">&gt;&gt;</a></th></tr>
1323
+ <tr><td width='50%' valign='top'>The text to save</td><td width='50%' valign='top'>The text to save</td></tr></table>
1324
+ </td>
1325
+ </tr>
1326
+ <tr>
1327
+ <td colspan="2" id="footer">
1328
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
1329
+ <TR>
1330
+ <TD width="50%">
1331
+
1332
+ <a href="/sidebyside/NonExistingWeb/VersionPage" rel="nofollow">Changed</a>
1333
+ on
1334
+ DATE
1335
+ by
1336
+ <a href="/search/NonExistingWeb?text=first+user" rel="nofollow">first user</a>
1337
+
1338
+ </TD>
1339
+ <TD width="50%" align="right">
1340
+ Contact the site administrator:
1341
+ <a href="/view/NonExistingWeb/MailFormattingRules" rel="nofollow" onmouseover="this.href='mai' + 'lto:' + 'wiki2go' + '&#64;' + 'nayima.be'">wiki2go</a>
1342
+ </TD>
1343
+ </TR>
1344
+ <tr><td colspan="2"><hr></td></tr>
1345
+ <tr>
1346
+ <td><FORM action="/search/NonExistingWeb" method="post" id="search" name="search">
1347
+ Search for <INPUT name="text" size="30" ID="Text1"> <input type="submit" name="Go" value="Go">
1348
+ </FORM>
1349
+ </td>
1350
+ <td>
1351
+
1352
+ </td>
1353
+ </tr>
1354
+ </TABLE>
1355
+ </td>
1356
+ </tr>
1357
+ </table>
1358
+ <span style="float:right">
1359
+ <a target="_blank" href="http://validator.w3.org/check?uri=http://localhost:8088/view/NonExistingWeb/VersionPage">
1360
+ <img border="0" src="/html/valid-html401.png" alt="Verify if layout is correct!" height="31" width="88"></a>
1361
+ </span>
1362
+ </BODY>
1363
+ </HTML>
1364
+ END_EXPECTED_SIDEBYSIDE
1365
+ end
768
1366
  end