impostor 0.2.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. data/.gemtest +0 -0
  2. data/.gitignore +1 -0
  3. data/.rspec +2 -0
  4. data/.rvmrc +1 -0
  5. data/Gemfile +17 -0
  6. data/Gemfile.lock +47 -0
  7. data/History.txt +8 -0
  8. data/Manifest.txt +87 -55
  9. data/README.txt +11 -11
  10. data/Rakefile +16 -20
  11. data/lib/impostor/auth.rb +103 -0
  12. data/lib/impostor/config.rb +171 -0
  13. data/lib/impostor/errors.rb +67 -0
  14. data/lib/impostor/phpbb2.rb +202 -0
  15. data/lib/impostor/phpbb3.rb +199 -0
  16. data/lib/impostor/post.rb +111 -0
  17. data/lib/impostor/topic.rb +115 -0
  18. data/lib/impostor/wwf79.rb +186 -0
  19. data/lib/impostor/wwf80.rb +190 -0
  20. data/lib/impostor.rb +108 -5
  21. data/spec/auth_spec.rb +148 -0
  22. data/spec/base_spec_helper.rb +12 -0
  23. data/{test/test_helper.rb → spec/caged_net_http.rb} +8 -17
  24. data/spec/config_spec.rb +136 -0
  25. data/spec/fixtures/junk.html +1 -0
  26. data/{test → spec}/fixtures/phpbb2-get-new_topic-form-good-response.html +0 -0
  27. data/{test → spec}/fixtures/phpbb2-get-viewtopic-for-new-topic-good-response.html +11 -11
  28. data/{test → spec}/fixtures/phpbb2-get-viewtopic-for-new-topic-malformed-response.html +0 -0
  29. data/{test → spec}/fixtures/phpbb2-index.html +0 -0
  30. data/{test → spec}/fixtures/phpbb2-logged-in.html +0 -0
  31. data/{test → spec}/fixtures/phpbb2-login.html +0 -0
  32. data/{test → spec}/fixtures/phpbb2-not-logged-in.html +0 -0
  33. data/{test → spec}/fixtures/phpbb2-post-new_topic-good-response.html +0 -0
  34. data/{test → spec}/fixtures/phpbb2-post-reply-good-response.html +0 -0
  35. data/{test → spec}/fixtures/phpbb2-post-reply-throttled-response.html +0 -0
  36. data/{test → spec}/fixtures/phpbb2-too-many-posts.html +0 -0
  37. data/{test → spec}/fixtures/phpbb3-get-new-topic-form-good-response.html +0 -0
  38. data/{test → spec}/fixtures/phpbb3-get-reply-form-good-response.html +0 -0
  39. data/{test → spec}/fixtures/phpbb3-logged-in.html +0 -0
  40. data/{test → spec}/fixtures/phpbb3-login.html +0 -0
  41. data/{test → spec}/fixtures/phpbb3-not-logged-in.html +0 -0
  42. data/{test → spec}/fixtures/phpbb3-post-new_topic-good-response.html +0 -0
  43. data/{test → spec}/fixtures/phpbb3-post-reply-good-response.html +0 -0
  44. data/spec/fixtures/vcr_cassettes/phpbb2-should-be-overlimit-creating-topic.yml +1308 -0
  45. data/spec/fixtures/vcr_cassettes/phpbb2-should-create-topic.yml +923 -0
  46. data/spec/fixtures/vcr_cassettes/phpbb2-should-login.yml +360 -0
  47. data/spec/fixtures/vcr_cassettes/phpbb2-should-not-create-new-topic.yml +497 -0
  48. data/spec/fixtures/vcr_cassettes/phpbb2-should-not-login.yml +287 -0
  49. data/spec/fixtures/vcr_cassettes/phpbb2-should-not-post.yml +497 -0
  50. data/spec/fixtures/vcr_cassettes/phpbb2-should-overlimit-error-post.yml +1140 -0
  51. data/spec/fixtures/vcr_cassettes/phpbb2-should-post.yml +751 -0
  52. data/spec/fixtures/vcr_cassettes/phpbb3-should-be-overlimit-creating-topic.yml +995 -0
  53. data/spec/fixtures/vcr_cassettes/phpbb3-should-create-topic.yml +675 -0
  54. data/spec/fixtures/vcr_cassettes/phpbb3-should-login.yml +245 -0
  55. data/spec/fixtures/vcr_cassettes/phpbb3-should-not-create-new-topic.yml +350 -0
  56. data/spec/fixtures/vcr_cassettes/phpbb3-should-not-login.yml +253 -0
  57. data/spec/fixtures/vcr_cassettes/phpbb3-should-not-post.yml +350 -0
  58. data/spec/fixtures/vcr_cassettes/phpbb3-should-overlimit-error-post.yml +1046 -0
  59. data/spec/fixtures/vcr_cassettes/phpbb3-should-post.yml +605 -0
  60. data/{test → spec}/fixtures/wwf79-forum_posts.html +0 -0
  61. data/{test → spec}/fixtures/wwf79-general-new-topic-error.html +0 -0
  62. data/{test → spec}/fixtures/wwf79-general-posting-error.html +0 -0
  63. data/{test → spec}/fixtures/wwf79-good-post-forum_posts.html +1 -1
  64. data/{test → spec}/fixtures/wwf79-index.html +0 -0
  65. data/{test → spec}/fixtures/wwf79-logged-in.html +0 -0
  66. data/{test → spec}/fixtures/wwf79-login.html +0 -0
  67. data/{test → spec}/fixtures/wwf79-new-topic-forum_posts-response.html +0 -0
  68. data/{test → spec}/fixtures/wwf79-new-topic-post_message_form.html +0 -0
  69. data/{test → spec}/fixtures/wwf79-not-logged-in.html +0 -0
  70. data/{test → spec}/fixtures/wwf79-too-many-posts.html +0 -0
  71. data/{test → spec}/fixtures/wwf79-too-many-topics.html +0 -0
  72. data/{test → spec}/fixtures/wwf80-general-posting-error.html +0 -0
  73. data/{test → spec}/fixtures/wwf80-get-new_topic-form-good-response.html +0 -0
  74. data/{test → spec}/fixtures/wwf80-get-viewtopic-for-new-topic-good-response.html +0 -0
  75. data/{test → spec}/fixtures/wwf80-index.html +0 -0
  76. data/{test → spec}/fixtures/wwf80-logged-in.html +0 -0
  77. data/{test → spec}/fixtures/wwf80-login.html +0 -0
  78. data/{test → spec}/fixtures/wwf80-new_reply_form.html +0 -0
  79. data/{test → spec}/fixtures/wwf80-not-logged-in.html +0 -0
  80. data/{test → spec}/fixtures/wwf80-post-new_topic-good-response.html +1 -1
  81. data/{test → spec}/fixtures/wwf80-post-reply-good-response.html +0 -0
  82. data/{test → spec}/fixtures/wwf80-too-many-posts.html +0 -0
  83. data/spec/impostor_spec_helper.rb +162 -0
  84. data/spec/integration/phpbb2_spec.rb +111 -0
  85. data/spec/integration/phpbb3_spec.rb +109 -0
  86. data/spec/integration_spec_helper.rb +7 -0
  87. data/spec/phpbb2_spec.rb +346 -0
  88. data/spec/phpbb3_spec.rb +332 -0
  89. data/spec/post_spec.rb +134 -0
  90. data/spec/spec_helper.rb +2 -0
  91. data/spec/test_impostor.rb +12 -0
  92. data/spec/topic_spec.rb +143 -0
  93. data/spec/wwf79_spec.rb +342 -0
  94. data/spec/wwf80_spec.rb +339 -0
  95. metadata +156 -87
  96. data/lib/www/impostor/phpbb2.rb +0 -258
  97. data/lib/www/impostor/phpbb3.rb +0 -236
  98. data/lib/www/impostor/wwf79.rb +0 -254
  99. data/lib/www/impostor/wwf80.rb +0 -264
  100. data/lib/www/impostor.rb +0 -269
  101. data/test/test_github.rb +0 -12
  102. data/test/test_www_impostor.rb +0 -165
  103. data/test/test_www_impostor_phpbb2.rb +0 -536
  104. data/test/test_www_impostor_phpbb3.rb +0 -483
  105. data/test/test_www_impostor_wwf79.rb +0 -535
  106. data/test/test_www_impostor_wwf80.rb +0 -535
  107. data/vendor/plugins/impostor/lib/autotest/discover.rb +0 -3
  108. data/vendor/plugins/impostor/lib/autotest/impostor.rb +0 -49
@@ -0,0 +1,136 @@
1
+ require File.join(File.dirname(__FILE__), 'spec_helper')
2
+
3
+ describe "impostor's configuration" do
4
+
5
+ it "should have an expected set of keys" do
6
+ lambda { config }.should_not raise_error(Impostor::ConfigError)
7
+ expected = [:type, :username, :password, :app_root, :login_page]
8
+ expected.each do |key|
9
+ config = { :type => :test,
10
+ :username => "user",
11
+ :password => "password",
12
+ :app_root => "http://example.com",
13
+ :login_page => "/login"
14
+ }
15
+ config.delete(key)
16
+ lambda {
17
+ Impostor::Config.new(config)
18
+ }.should raise_error(Impostor::ConfigError)
19
+ end
20
+ end
21
+
22
+ it "should key off symbols or strings" do
23
+ config = config(:foo => "bar")
24
+ config.config(:foo).should == "bar"
25
+ config.config("foo").should == "bar"
26
+ end
27
+
28
+ it "should set up an agent" do
29
+ config.agent.should respond_to(:get)
30
+ end
31
+
32
+ it "should load a topics cache persisted in a file" do
33
+ cache = Tempfile.new('foo')
34
+ topics = {"1" => {"2" => "Hello World"}}
35
+ cache.write(topics.to_yaml)
36
+ cache.close
37
+
38
+ YAML.should_receive(:load_file).with(cache.path).and_return(topics)
39
+ config(:topics_cache => cache.path).topics.should == topics
40
+ end
41
+
42
+ it "should load a topics cache persisted in memory" do
43
+ YAML.should_not_receive(:load_file)
44
+ config.topics.should == {}
45
+ end
46
+
47
+ it "should add a subject" do
48
+ c = config
49
+ c.topics.should == {}
50
+ c.add_subject(1, 2, "Hello World")
51
+ c.topics.should == {"1" => {"2" => "Hello World"}}
52
+ end
53
+
54
+ it "should get a subject" do
55
+ c = config
56
+ c.add_subject(1, 2, "Hello World")
57
+ c.topics.should == {"1" => {"2" => "Hello World"}}
58
+ c.get_subject(1, 2).should == "Hello World"
59
+ end
60
+
61
+ it "should save topics when it has a file to persist to" do
62
+ cache = Tempfile.new('foo')
63
+ topics = {"1" => {"2" => "Hello World"}}
64
+ cache.write(topics.to_yaml)
65
+ cache.close
66
+
67
+ c = config(:topics_cache => cache.path)
68
+ c.add_subject(1, 3, "Foo Bar")
69
+ c.save_topics
70
+
71
+ YAML::load_file(cache.path).should ==
72
+ {"1" => {"2" => "Hello World", "3" => "Foo Bar"}}
73
+ end
74
+
75
+ it "should have an app root" do
76
+ config(:app_root => "http://example.com").app_root.
77
+ should == "http://example.com"
78
+ end
79
+
80
+ it "should have a topics cache config entry" do
81
+ config(:topics_cache => "/hello/world").topics_cache.should == "/hello/world"
82
+ end
83
+
84
+ it "should have a username" do
85
+ config.username.should == "user"
86
+ end
87
+
88
+ it "should have a password" do
89
+ config.password.should == "password"
90
+ end
91
+
92
+ it "should have a default user agent" do
93
+ config.user_agent.should == "Mechanize"
94
+ end
95
+
96
+ it "should have a default user agent" do
97
+ config(:user_agent => "Linux Mozilla").user_agent.should == "Linux Mozilla"
98
+ end
99
+
100
+ it "should have a cookie jar" do
101
+ config(:cookie_jar => "/hello/world").cookie_jar.should == "/hello/world"
102
+ end
103
+
104
+ it "should have zero for sleep setting" do
105
+ config.sleep_before_post.should be_zero
106
+ end
107
+
108
+ it "should have for sleep setting" do
109
+ config(:sleep_before_post => 1).sleep_before_post.should == 1
110
+ end
111
+
112
+ it "should have a logger" do
113
+ log_file = Tempfile.new('log')
114
+ mechanize = mock "mechanize"
115
+ logger = mock "logger"
116
+ mechanize.should_receive(:log=).with(logger)
117
+ mechanize.should_receive(:user_agent_alias=).with("Mechanize")
118
+ Mechanize.should_receive(:new).and_yield(mechanize).and_return(mechanize)
119
+ Logger.should_receive(:new).with(log_file.path).and_return(logger)
120
+ self.config(:logger => log_file.path)
121
+ end
122
+
123
+ it "should have a cookie jar" do
124
+ jar_file = Tempfile.new('cookies')
125
+ jar_file.close
126
+ config = self.config(:cookie_jar => jar_file.path)
127
+ config.agent.cookie_jar.should_receive(:save_as).with(jar_file.path).once
128
+
129
+ config.save_cookie_jar
130
+ end
131
+
132
+ it "should have a type" do
133
+ config(:type => :foo).type.should == :foo
134
+ end
135
+
136
+ end
@@ -0,0 +1 @@
1
+ <html><head><title>junk</title></head><body>some junk</body></html>
@@ -5,8 +5,8 @@
5
5
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
6
  <meta http-equiv="Content-Style-Type" content="text/css">
7
7
 
8
- <link rel="prev" href="http://localhost/phpBB2/viewtopic.php?t=29&amp;view=previous" title="View previous topic">
9
- <link rel="next" href="http://localhost/phpBB2/viewtopic.php?t=29&amp;view=next" title="View next topic">
8
+ <link rel="prev" href="http://localhost/phpBB2/viewtopic.php?t=2&amp;view=previous" title="View previous topic">
9
+ <link rel="next" href="http://localhost/phpBB2/viewtopic.php?t=2&amp;view=next" title="View next topic">
10
10
  <link rel="up" href="http://localhost/phpBB2/viewforum.php?f=2" title="Cell Photo Bot">
11
11
  <link rel="chapter forum" href="http://localhost/phpBB2/viewforum.php?f=1" title="Test Forum 1">
12
12
  <link rel="chapter forum" href="http://localhost/phpBB2/viewforum.php?f=2" title="Cell Photo Bot"><title>yourdomain.com :: View topic - test</title><!-- link rel="stylesheet" href="templates/subSilver/subSilver.css" type="text/css" -->
@@ -249,7 +249,7 @@ input.liteoption {
249
249
 
250
250
  <table border="0" cellpadding="2" cellspacing="2" width="100%">
251
251
  <tbody><tr>
252
- <td colspan="2" align="left" valign="bottom"><a class="maintitle" href="http://localhost/phpBB2/viewtopic.php?t=29&amp;start=0&amp;postdays=0&amp;postorder=asc&amp;highlight=">test</a><br>
252
+ <td colspan="2" align="left" valign="bottom"><a class="maintitle" href="http://localhost/phpBB2/viewtopic.php?t=2&amp;start=0&amp;postdays=0&amp;postorder=asc&amp;highlight=">test</a><br>
253
253
  <span class="gensmall"><b></b><br>
254
254
  &nbsp; </span></td>
255
255
  </tr>
@@ -257,7 +257,7 @@ input.liteoption {
257
257
 
258
258
  <table border="0" cellpadding="2" cellspacing="2" width="100%">
259
259
  <tbody><tr>
260
- <td align="left" nowrap="nowrap" valign="bottom"><span class="nav"><a href="http://localhost/phpBB2/posting.php?mode=newtopic&amp;f=2"><img src="viewtopic.php_files/post.gif" alt="Post new topic" align="middle" border="0"></a>&nbsp;&nbsp;&nbsp;<a href="http://localhost/phpBB2/posting.php?mode=reply&amp;t=29"><img src="viewtopic.php_files/reply.gif" alt="Reply to topic" align="middle" border="0"></a></span></td>
260
+ <td align="left" nowrap="nowrap" valign="bottom"><span class="nav"><a href="http://localhost/phpBB2/posting.php?mode=newtopic&amp;f=2"><img src="viewtopic.php_files/post.gif" alt="Post new topic" align="middle" border="0"></a>&nbsp;&nbsp;&nbsp;<a href="http://localhost/phpBB2/posting.php?mode=reply&amp;t=2"><img src="viewtopic.php_files/reply.gif" alt="Reply to topic" align="middle" border="0"></a></span></td>
261
261
  <td align="left" valign="middle" width="100%"><span class="nav">&nbsp;&nbsp;&nbsp;<a href="http://localhost/phpBB2/index.php" class="nav">yourdomain.com Forum Index</a>
262
262
  -&gt; <a href="http://localhost/phpBB2/viewforum.php?f=2" class="nav">Cell Photo Bot</a></span></td>
263
263
  </tr>
@@ -265,7 +265,7 @@ input.liteoption {
265
265
 
266
266
  <table class="forumline" border="0" cellpadding="3" cellspacing="1" width="100%">
267
267
  <tbody><tr align="right">
268
- <td class="catHead" colspan="2" height="28"><span class="nav"><a href="http://localhost/phpBB2/viewtopic.php?t=29&amp;view=previous" class="nav">View previous topic</a> :: <a href="http://localhost/phpBB2/viewtopic.php?t=29&amp;view=next" class="nav">View next topic</a> &nbsp;</span></td>
268
+ <td class="catHead" colspan="2" height="28"><span class="nav"><a href="http://localhost/phpBB2/viewtopic.php?t=2&amp;view=previous" class="nav">View previous topic</a> :: <a href="http://localhost/phpBB2/viewtopic.php?t=2&amp;view=next" class="nav">View next topic</a> &nbsp;</span></td>
269
269
  </tr>
270
270
 
271
271
  <tr>
@@ -277,7 +277,7 @@ input.liteoption {
277
277
  <td class="row1" height="28" valign="top" width="100%"><table border="0" cellpadding="0" cellspacing="0" width="100%">
278
278
  <tbody><tr>
279
279
  <td width="100%"><a href="http://localhost/phpBB2/viewtopic.php?p=60#60"><img src="viewtopic.php_files/icon_minipost.gif" alt="Post" title="Post" border="0" height="9" width="12"></a><span class="postdetails">Posted: Sat Sep 01, 2007 6:59 am<span class="gen">&nbsp;</span>&nbsp; &nbsp;Post subject: test</span></td>
280
- <td nowrap="nowrap" valign="top"><a href="http://localhost/phpBB2/posting.php?mode=quote&amp;p=60"><img src="viewtopic.php_files/icon_quote.gif" alt="Reply with quote" title="Reply with quote" border="0"></a> <a href="http://localhost/phpBB2/posting.php?mode=editpost&amp;p=60"><img src="viewtopic.php_files/icon_edit.gif" alt="Edit/Delete this post" title="Edit/Delete this post" border="0"></a> <a href="http://localhost/phpBB2/posting.php?mode=delete&amp;p=60&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/icon_delete.gif" alt="Delete this post" title="Delete this post" border="0"></a> <a href="http://localhost/phpBB2/modcp.php?mode=ip&amp;p=60&amp;t=29&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/icon_ip.gif" alt="View IP address of poster" title="View IP address of poster" border="0"></a></td>
280
+ <td nowrap="nowrap" valign="top"><a href="http://localhost/phpBB2/posting.php?mode=quote&amp;p=60"><img src="viewtopic.php_files/icon_quote.gif" alt="Reply with quote" title="Reply with quote" border="0"></a> <a href="http://localhost/phpBB2/posting.php?mode=editpost&amp;p=60"><img src="viewtopic.php_files/icon_edit.gif" alt="Edit/Delete this post" title="Edit/Delete this post" border="0"></a> <a href="http://localhost/phpBB2/posting.php?mode=delete&amp;p=60&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/icon_delete.gif" alt="Delete this post" title="Delete this post" border="0"></a> <a href="http://localhost/phpBB2/modcp.php?mode=ip&amp;p=60&amp;t=2&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/icon_ip.gif" alt="View IP address of poster" title="View IP address of poster" border="0"></a></td>
281
281
  </tr>
282
282
  <tr>
283
283
  <td colspan="2"><hr></td>
@@ -307,7 +307,7 @@ input.liteoption {
307
307
  </tr>
308
308
  <tr align="center">
309
309
  <td class="catBottom" colspan="2" height="28"><table border="0" cellpadding="0" cellspacing="0">
310
- <tbody><tr><form method="post" action="viewtopic.php?t=29&amp;start=0"></form>
310
+ <tbody><tr><form method="post" action="viewtopic.php?t=2&amp;start=0"></form>
311
311
  <td align="center"><span class="gensmall">Display posts from previous: <select name="postdays"><option value="0" selected="selected">All Posts</option><option value="1">1 Day</option><option value="7">7 Days</option><option value="14">2 Weeks</option><option value="30">1 Month</option><option value="90">3 Months</option><option value="180">6 Months</option><option value="364">1 Year</option></select>&nbsp;<select name="postorder"><option value="asc" selected="selected">Oldest First</option><option value="desc">Newest First</option></select>&nbsp;<input value="Go" class="liteoption" name="submit" type="submit"></span></td>
312
312
  </tr>
313
313
  </tbody></table></td>
@@ -316,7 +316,7 @@ input.liteoption {
316
316
 
317
317
  <table align="center" border="0" cellpadding="2" cellspacing="2" width="100%">
318
318
  <tbody><tr>
319
- <td align="left" nowrap="nowrap" valign="middle"><span class="nav"><a href="http://localhost/phpBB2/posting.php?mode=newtopic&amp;f=2"><img src="viewtopic.php_files/post.gif" alt="Post new topic" align="middle" border="0"></a>&nbsp;&nbsp;&nbsp;<a href="http://localhost/phpBB2/posting.php?mode=reply&amp;t=29"><img src="viewtopic.php_files/reply.gif" alt="Reply to topic" align="middle" border="0"></a></span></td>
319
+ <td align="left" nowrap="nowrap" valign="middle"><span class="nav"><a href="http://localhost/phpBB2/posting.php?mode=newtopic&amp;f=2"><img src="viewtopic.php_files/post.gif" alt="Post new topic" align="middle" border="0"></a>&nbsp;&nbsp;&nbsp;<a href="http://localhost/phpBB2/posting.php?mode=reply&amp;t=2"><img src="viewtopic.php_files/reply.gif" alt="Reply to topic" align="middle" border="0"></a></span></td>
320
320
  <td align="left" valign="middle" width="100%"><span class="nav">&nbsp;&nbsp;&nbsp;<a href="http://localhost/phpBB2/index.php" class="nav">yourdomain.com Forum Index</a>
321
321
  -&gt; <a href="http://localhost/phpBB2/viewforum.php?f=2" class="nav">Cell Photo Bot</a></span></td>
322
322
  <td align="right" nowrap="nowrap" valign="top"><span class="gensmall">All times are GMT</span><br><span class="nav"></span>
@@ -329,9 +329,9 @@ input.liteoption {
329
329
 
330
330
  <table align="center" border="0" cellspacing="2" width="100%">
331
331
  <tbody><tr>
332
- <td align="left" nowrap="nowrap" valign="top" width="40%"><span class="gensmall"><a href="http://localhost/phpBB2/viewtopic.php?t=29&amp;watch=topic&amp;start=0&amp;sid=634167992ee20b38119f42ea4f619682">Watch this topic for replies</a></span><br>
332
+ <td align="left" nowrap="nowrap" valign="top" width="40%"><span class="gensmall"><a href="http://localhost/phpBB2/viewtopic.php?t=2&amp;watch=topic&amp;start=0&amp;sid=634167992ee20b38119f42ea4f619682">Watch this topic for replies</a></span><br>
333
333
  &nbsp;<br>
334
- <a href="http://localhost/phpBB2/modcp.php?t=29&amp;mode=delete&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/topic_delete.gif" alt="Delete this topic" title="Delete this topic" border="0"></a>&nbsp;<a href="http://localhost/phpBB2/modcp.php?t=29&amp;mode=move&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/topic_move.gif" alt="Move this topic" title="Move this topic" border="0"></a>&nbsp;<a href="http://localhost/phpBB2/modcp.php?t=29&amp;mode=lock&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/topic_lock.gif" alt="Lock this topic" title="Lock this topic" border="0"></a>&nbsp;<a href="http://localhost/phpBB2/modcp.php?t=29&amp;mode=split&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/topic_split.gif" alt="Split this topic" title="Split this topic" border="0"></a>&nbsp;</td>
334
+ <a href="http://localhost/phpBB2/modcp.php?t=2&amp;mode=delete&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/topic_delete.gif" alt="Delete this topic" title="Delete this topic" border="0"></a>&nbsp;<a href="http://localhost/phpBB2/modcp.php?t=2&amp;mode=move&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/topic_move.gif" alt="Move this topic" title="Move this topic" border="0"></a>&nbsp;<a href="http://localhost/phpBB2/modcp.php?t=2&amp;mode=lock&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/topic_lock.gif" alt="Lock this topic" title="Lock this topic" border="0"></a>&nbsp;<a href="http://localhost/phpBB2/modcp.php?t=2&amp;mode=split&amp;sid=634167992ee20b38119f42ea4f619682"><img src="viewtopic.php_files/topic_split.gif" alt="Split this topic" title="Split this topic" border="0"></a>&nbsp;</td>
335
335
  <td align="right" nowrap="nowrap" valign="top">
336
336
  <form method="get" name="jumpbox" action="viewforum.php" onsubmit="if(document.jumpbox.f.value == -1){return false;}"><table border="0" cellpadding="0" cellspacing="0">
337
337
  <tbody><tr>
@@ -361,4 +361,4 @@ Powered by <a href="http://www.phpbb.com/" target="_phpbb" class="copyright">php
361
361
  </tbody></table>
362
362
 
363
363
 
364
- </body></html>
364
+ </body></html>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes