kronk 1.2.5 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,6 +7,33 @@ class TestDiff < Test::Unit::TestCase
7
7
  end
8
8
 
9
9
 
10
+ def test_find_common
11
+ arr1 = [1,2,3,4,5,6,7,8,9,0]
12
+ arr2 = [2,3,1,4,7,8,9,0,5,6]
13
+
14
+ assert_equal [[2, 1, 0], [1, 3, 3], [4, 6, 4]],
15
+ @diff.find_common(arr1, arr2).compact
16
+ end
17
+
18
+
19
+ def test_find_common_prelast_only_diff
20
+ arr1 = [1,2,3,4,5,6,0]
21
+ arr2 = [1,2,3,4,5,0]
22
+
23
+ assert_equal [[5,0,0],[1,6,5]],
24
+ @diff.find_common(arr1, arr2).compact
25
+ end
26
+
27
+
28
+ def test_find_common_many
29
+ arr1 = [1,2,3,4,5,6,7,8,9,0,7,8,9,1,2,0,4,4]
30
+ arr2 = [2,3,1,4,7,8,9,0,5,6,1,7,8,0,0,9,1,2,4,4]
31
+
32
+ assert_equal [[2,1,0],[1,3,3],[4,6,4],[2,10,11],[3,12,15],[2,16,18]],
33
+ @diff.find_common(arr1, arr2).compact
34
+ end
35
+
36
+
10
37
  def test_new_from_data
11
38
  other_data = {:foo => :bar}
12
39
 
@@ -297,9 +324,8 @@ STR
297
324
 
298
325
  expected = [
299
326
  "line1",
300
- [["line right"], ["line left", "line2", "line3"]],
327
+ [["line right", "line4"], ["line left", "line2", "line3"]],
301
328
  "line4",
302
- [["line4"], []],
303
329
  "line5",
304
330
  [["line6", "line2", "line7"], []]
305
331
  ]
@@ -468,28 +494,28 @@ STR
468
494
 
469
495
  def diff_302_301_color
470
496
  str = <<STR
471
- \033[31mHTTP/1.1 302 Found\033[0m
472
- \033[31mLocation: http://igoogle.com/\033[0m
473
- \033[32mHTTP/1.1 301 Moved Permanently\033[0m
474
- \033[32mLocation: http://www.google.com/\033[0m
475
- Content-Type: text/html; charset=UTF-8
476
- Date: Fri, 26 Nov 2010 16:14:45 GMT
477
- Expires: Sun, 26 Dec 2010 16:14:45 GMT
478
- Cache-Control: public, max-age=2592000
479
- Server: gws
480
- \033[31mContent-Length: 260\033[0m
481
- \033[32mContent-Length: 219\033[0m
482
- X-XSS-Protection: 1; mode=block
483
-
484
- <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
485
- \033[31m<TITLE>302 Found</TITLE></HEAD><BODY>\033[0m
486
- \033[31m<H1>302 Found</H1>\033[0m
487
- \033[32m<TITLE>301 Moved</TITLE></HEAD><BODY>\033[0m
488
- \033[32m<H1>301 Moved</H1>\033[0m
489
- The document has moved
490
- <A HREF="http://www.google.com/">here</A>.
491
- \033[31m<A HREF="http://igoogle.com/">here</A>.\033[0m
492
- </BODY></HTML>
497
+ \033[31m- HTTP/1.1 302 Found\033[0m
498
+ \033[31m- Location: http://igoogle.com/\033[0m
499
+ \033[32m+ HTTP/1.1 301 Moved Permanently\033[0m
500
+ \033[32m+ Location: http://www.google.com/\033[0m
501
+ Content-Type: text/html; charset=UTF-8
502
+ Date: Fri, 26 Nov 2010 16:14:45 GMT
503
+ Expires: Sun, 26 Dec 2010 16:14:45 GMT
504
+ Cache-Control: public, max-age=2592000
505
+ Server: gws
506
+ \033[31m- Content-Length: 260\033[0m
507
+ \033[32m+ Content-Length: 219\033[0m
508
+ X-XSS-Protection: 1; mode=block
509
+
510
+ <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
511
+ \033[31m- <TITLE>302 Found</TITLE></HEAD><BODY>\033[0m
512
+ \033[31m- <H1>302 Found</H1>\033[0m
513
+ \033[32m+ <TITLE>301 Moved</TITLE></HEAD><BODY>\033[0m
514
+ \033[32m+ <H1>301 Moved</H1>\033[0m
515
+ The document has moved
516
+ <A HREF="http://www.google.com/">here</A>.
517
+ \033[31m- <A HREF="http://igoogle.com/">here</A>.\033[0m
518
+ </BODY></HTML>
493
519
  STR
494
520
  str.strip
495
521
  end
@@ -0,0 +1,177 @@
1
+ require 'test/test_helper'
2
+ require 'lib/kronk/test/helper_methods'
3
+
4
+ class TestHelperMethods < Test::Unit::TestCase
5
+ include Kronk::Test::HelperMethods
6
+
7
+ def setup
8
+ io = StringIO.new mock_resp("200_response.json")
9
+ @json = JSON.parse mock_resp("200_response.json").split("\r\n\r\n")[1]
10
+ @mock_resp = Kronk::Response.read_new io
11
+ @mock_resp2 = Kronk::Response.read_new \
12
+ StringIO.new mock_resp("200_response.json")
13
+
14
+ Kronk::Request.stubs(:retrieve).returns @mock_resp
15
+ end
16
+
17
+
18
+ def test_get
19
+ Kronk::Request.expects(:retrieve).
20
+ with("host.com", :foo => "bar", :http_method => :get).
21
+ returns @mock_resp
22
+
23
+ get "host.com", :foo => "bar", :http_method => :foobar
24
+ end
25
+
26
+
27
+ def test_get_two
28
+ Kronk::Request.expects(:retrieve).times(2).
29
+ with("host.com", :foo => "bar", :http_method => :get).
30
+ returns @mock_resp
31
+
32
+ get "host.com", "host.com", :foo => "bar", :http_method => :foobar
33
+ end
34
+
35
+
36
+ def test_post
37
+ Kronk::Request.expects(:retrieve).
38
+ with("host.com", :foo => "bar", :http_method => :post).
39
+ returns @mock_resp
40
+
41
+ post "host.com", :foo => "bar", :http_method => :foobar
42
+ end
43
+
44
+
45
+ def test_post_two
46
+ Kronk::Request.expects(:retrieve).times(2).
47
+ with("host.com", :foo => "bar", :http_method => :post).
48
+ returns @mock_resp
49
+
50
+ post "host.com", "host.com", :foo => "bar", :http_method => :foobar
51
+ end
52
+
53
+
54
+ def test_put
55
+ Kronk::Request.expects(:retrieve).
56
+ with("host.com", :foo => "bar", :http_method => :put).
57
+ returns @mock_resp
58
+
59
+ put "host.com", :foo => "bar", :http_method => :foobar
60
+ end
61
+
62
+
63
+ def test_put_two
64
+ Kronk::Request.expects(:retrieve).times(2).
65
+ with("host.com", :foo => "bar", :http_method => :put).
66
+ returns @mock_resp
67
+
68
+ put "host.com", "host.com", :foo => "bar", :http_method => :foobar
69
+ end
70
+
71
+
72
+
73
+ def test_delete
74
+ Kronk::Request.expects(:retrieve).
75
+ with("host.com", :foo => "bar", :http_method => :delete).
76
+ returns @mock_resp
77
+
78
+ delete "host.com", :foo => "bar", :http_method => :foobar
79
+ end
80
+
81
+
82
+ def test_delete_two
83
+ Kronk::Request.expects(:retrieve).times(2).
84
+ with("host.com", :foo => "bar", :http_method => :delete).
85
+ returns @mock_resp
86
+
87
+ delete "host.com", "host.com", :foo => "bar", :http_method => :foobar
88
+ end
89
+
90
+
91
+ def test_retrieve_one
92
+ Kronk::Request.expects(:retrieve).
93
+ with("host.com", :foo => "bar", :test => "thing").returns @mock_resp
94
+
95
+ @mock_resp.expects(:selective_data).with(:foo => "bar", :test => "thing").
96
+ returns @json
97
+
98
+ retrieve "host.com", {:foo => "bar"}, :test => "thing"
99
+
100
+ assert_equal @mock_resp, @response
101
+ assert_equal [@mock_resp], @responses
102
+
103
+ assert_equal @json, @data
104
+ assert_equal [@json], @datas
105
+
106
+ assert_nil @diff
107
+ end
108
+
109
+
110
+ def test_retrieve_two
111
+ Kronk::Request.expects(:retrieve).
112
+ with("host1.com", :foo => "bar").returns @mock_resp
113
+
114
+ Kronk::Request.expects(:retrieve).
115
+ with("host2.com", :foo => "bar").returns @mock_resp2
116
+
117
+ @mock_resp.expects(:selective_data).with(:foo => "bar").returns @json
118
+
119
+ @mock_resp2.expects(:selective_data).with(:foo => "bar").returns @json
120
+
121
+ retrieve "host1.com", "host2.com", :foo => "bar"
122
+
123
+ assert_equal @mock_resp2, @response
124
+ assert_equal [@mock_resp, @mock_resp2], @responses
125
+
126
+ assert_equal @json, @data
127
+ assert_equal [@json, @json], @datas
128
+
129
+ expected_diff = Kronk::Diff.new_from_data(*@datas)
130
+
131
+ assert_equal expected_diff.str1, @diff.str1
132
+ assert_equal expected_diff.str2, @diff.str2
133
+ end
134
+
135
+
136
+ def test_retrieve_unparsable
137
+ mock_resp = Kronk::Response.read_new StringIO.new(mock_200_response)
138
+
139
+ Kronk::Request.expects(:retrieve).
140
+ with("host.com", :foo => "bar").returns mock_resp
141
+
142
+ retrieve "host.com", :foo => "bar"
143
+
144
+ assert_equal mock_resp, @response
145
+ assert_equal [mock_resp], @responses
146
+
147
+ assert_equal mock_resp.body, @data
148
+ assert_equal [mock_resp.body], @datas
149
+
150
+ assert_nil @diff
151
+ end
152
+
153
+
154
+ def test_retrieve_two_unparsable
155
+ mock_resp = Kronk::Response.read_new StringIO.new(mock_200_response)
156
+
157
+ Kronk::Request.expects(:retrieve).
158
+ with("host1.com", :foo => "bar").returns mock_resp
159
+
160
+ Kronk::Request.expects(:retrieve).
161
+ with("host2.com", :foo => "bar").returns mock_resp
162
+
163
+
164
+ retrieve "host1.com", "host2.com", :foo => "bar"
165
+
166
+ assert_equal mock_resp, @response
167
+ assert_equal [mock_resp, mock_resp], @responses
168
+
169
+ assert_equal mock_resp.body, @data
170
+ assert_equal [mock_resp.body, mock_resp.body], @datas
171
+
172
+ expected_diff = Kronk::Diff.new_from_data(*@datas)
173
+
174
+ assert_equal expected_diff.str1, @diff.str1
175
+ assert_equal expected_diff.str2, @diff.str2
176
+ end
177
+ end
@@ -79,6 +79,8 @@ class TestKronk < Test::Unit::TestCase
79
79
  def test_make_config_file
80
80
  file = mock 'file'
81
81
  file.expects(:<<).with Kronk::DEFAULT_CONFIG.to_yaml
82
+ File.expects(:directory?).with(Kronk::CONFIG_DIR).returns false
83
+ Dir.expects(:mkdir).with Kronk::CONFIG_DIR
82
84
  File.expects(:open).with(Kronk::DEFAULT_CONFIG_FILE, "w+").yields file
83
85
 
84
86
  Kronk.make_config_file
@@ -484,7 +486,7 @@ STR
484
486
  options = {}
485
487
  argv = %w{this is --argv -- one -two -- -three four :parents :-not_parents}
486
488
 
487
- options = Kronk.parse_data_path_args options, argv
489
+ options = Kronk::Cmd.parse_data_path_args options, argv
488
490
 
489
491
  assert_equal %w{one four}, options[:only_data]
490
492
  assert_equal %w{two - three}, options[:ignore_data]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kronk
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 2
9
- - 5
10
- version: 1.2.5
8
+ - 3
9
+ - 0
10
+ version: 1.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jeremie Castagna
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-03-09 00:00:00 -08:00
19
- default_executable:
18
+ date: 2011-06-01 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: plist
@@ -42,11 +41,11 @@ dependencies:
42
41
  requirements:
43
42
  - - ~>
44
43
  - !ruby/object:Gem::Version
45
- hash: 11
44
+ hash: 5
46
45
  segments:
47
46
  - 1
48
- - 2
49
- version: "1.2"
47
+ - 5
48
+ version: "1.5"
50
49
  type: :runtime
51
50
  version_requirements: *id002
52
51
  - !ruby/object:Gem::Dependency
@@ -57,11 +56,11 @@ dependencies:
57
56
  requirements:
58
57
  - - ~>
59
58
  - !ruby/object:Gem::Version
60
- hash: 9
59
+ hash: 7
61
60
  segments:
62
61
  - 1
63
- - 3
64
- version: "1.3"
62
+ - 4
63
+ version: "1.4"
65
64
  type: :runtime
66
65
  version_requirements: *id003
67
66
  - !ruby/object:Gem::Dependency
@@ -70,7 +69,7 @@ dependencies:
70
69
  requirement: &id004 !ruby/object:Gem::Requirement
71
70
  none: false
72
71
  requirements:
73
- - - ~>
72
+ - - ">="
74
73
  - !ruby/object:Gem::Version
75
74
  hash: 1
76
75
  segments:
@@ -150,12 +149,12 @@ dependencies:
150
149
  requirements:
151
150
  - - ">="
152
151
  - !ruby/object:Gem::Version
153
- hash: 47
152
+ hash: 35
154
153
  segments:
155
154
  - 2
156
- - 8
157
- - 0
158
- version: 2.8.0
155
+ - 9
156
+ - 4
157
+ version: 2.9.4
159
158
  type: :development
160
159
  version_requirements: *id009
161
160
  description: |-
@@ -165,6 +164,7 @@ email:
165
164
  - yaksnrainbows@gmail.com
166
165
  executables:
167
166
  - kronk
167
+ - yzma
168
168
  extensions: []
169
169
 
170
170
  extra_rdoc_files:
@@ -178,13 +178,24 @@ files:
178
178
  - README.rdoc
179
179
  - Rakefile
180
180
  - bin/kronk
181
+ - bin/yzma
181
182
  - lib/kronk.rb
183
+ - lib/kronk/cmd.rb
182
184
  - lib/kronk/data_set.rb
183
185
  - lib/kronk/diff.rb
186
+ - lib/kronk/diff/ascii_format.rb
187
+ - lib/kronk/diff/color_format.rb
184
188
  - lib/kronk/plist_parser.rb
185
189
  - lib/kronk/request.rb
186
190
  - lib/kronk/response.rb
191
+ - lib/kronk/test.rb
192
+ - lib/kronk/test/assertions.rb
193
+ - lib/kronk/test/core_ext.rb
194
+ - lib/kronk/test/helper_methods.rb
187
195
  - lib/kronk/xml_parser.rb
196
+ - lib/yzma.rb
197
+ - lib/yzma/randomizer.rb
198
+ - lib/yzma/report.rb
188
199
  - script/kronk_completion
189
200
  - test/mocks/200_response.json
190
201
  - test/mocks/200_response.plist
@@ -192,6 +203,9 @@ files:
192
203
  - test/mocks/200_response.xml
193
204
  - test/mocks/301_response.txt
194
205
  - test/mocks/302_response.txt
206
+ - test/test_assertions.rb
207
+ - test/test_core_ext.rb
208
+ - test/test_helper_methods.rb
195
209
  - test/test_data_set.rb
196
210
  - test/test_diff.rb
197
211
  - test/test_helper.rb
@@ -199,7 +213,7 @@ files:
199
213
  - test/test_request.rb
200
214
  - test/test_response.rb
201
215
  - test/test_xml_parser.rb
202
- has_rdoc: true
216
+ - .gemtest
203
217
  homepage: https://github.com/yaksnrainbows/kronk
204
218
  licenses: []
205
219
 
@@ -230,14 +244,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
244
  requirements: []
231
245
 
232
246
  rubyforge_project: kronk
233
- rubygems_version: 1.5.2
247
+ rubygems_version: 1.8.4
234
248
  signing_key:
235
249
  specification_version: 3
236
250
  summary: Kronk runs diffs against data from live and cached http responses
237
251
  test_files:
252
+ - test/test_assertions.rb
253
+ - test/test_core_ext.rb
238
254
  - test/test_data_set.rb
239
255
  - test/test_diff.rb
240
256
  - test/test_helper.rb
257
+ - test/test_helper_methods.rb
241
258
  - test/test_kronk.rb
242
259
  - test/test_request.rb
243
260
  - test/test_response.rb