assert2 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/assert2/rjs.rb +27 -8
  2. data/lib/assert2/xhtml.rb +8 -9
  3. metadata +2 -2
@@ -92,6 +92,13 @@ module Test; module Unit; module Assertions
92
92
  @command = :call
93
93
  pwn_call 'Element.remove', *args, &block
94
94
  end
95
+ end # TODO get the call call out of the error message
96
+
97
+ class TOGGLE < AssertRjs
98
+ def pwn *args, &block
99
+ @command = :call
100
+ pwn_call 'Element.toggle', *args, &block
101
+ end
95
102
  end
96
103
 
97
104
  class CALL < AssertRjs
@@ -134,29 +141,41 @@ module Test; module Unit; module Assertions
134
141
  end
135
142
  end
136
143
 
137
- def __interpret_rjs(command, *args, &block)
144
+ def __interpret_rjs(response, command, *args, &block)
138
145
  klass = command.to_s.upcase
139
146
  klass = eval("AssertRjs::#{klass}") rescue
140
147
  flunk("#{command} not implemented!")
141
- asserter = klass.new(@response.body, command, self)
148
+ asserter = klass.new(response, command, self)
142
149
  sample = asserter.pwn(*args, &block)
143
150
  return sample, asserter
144
151
  end
145
152
 
146
- def assert_rjs_(command, *args, &block)
147
- sample, asserter = __interpret_rjs(command, *args, &block)
153
+ def assert_rjs_(*args, &block)
154
+ if args.first.class == Symbol
155
+ command, *args = *args
156
+ response = @response.body
157
+ else
158
+ response, command, *args = *args
159
+ end
160
+
161
+ sample, asserter = __interpret_rjs(response, command, *args, &block)
148
162
  asserter.failure_message and flunk(asserter.failure_message)
149
163
  return sample
150
164
  end
151
165
 
152
- def assert_no_rjs_(command, *args, &block)
153
- sample, asserter = __interpret_rjs(command, *args, &block)
166
+ def assert_no_rjs_(*args, &block)
167
+ if args.first.class == Symbol
168
+ command, *args = *args
169
+ response = @response.body
170
+ else
171
+ response, command, *args = *args # TODO test me!
172
+ end
173
+
174
+ sample, asserter = __interpret_rjs(response, command, *args, &block)
154
175
  asserter.failure_message and return sample
155
176
  flunk("should not find #{sample.inspect} in\n#{asserter.js}") # TODO complaint system
156
177
  end
157
178
 
158
- # TODO wrappers for RSpec
159
-
160
179
  # command == :replace_html or # TODO put me inside the method_missing!
161
180
  # flunk("assert_rjs's alpha version only respects :replace_html")
162
181
  # TODO also crack out the args correctly and gripe if they wrong
@@ -74,6 +74,7 @@ class BeHtmlWith
74
74
  :message,
75
75
  :reference,
76
76
  :references,
77
+ :returnable,
77
78
  :sample,
78
79
  :scope
79
80
 
@@ -147,9 +148,12 @@ class BeHtmlWith
147
148
  end
148
149
 
149
150
  def match_xpath(path, &refer)
150
- @doc.root.xpath_with_callback path, :refer do |element, index|
151
- collect_samples(element, index.to_i)
152
- end
151
+ nodes = @doc.root.xpath_with_callback path, :refer do |element, index|
152
+ collect_samples(element, index.to_i)
153
+ end
154
+
155
+ @returnable ||= nodes.first # TODO be_with_html must get on board too
156
+ return nodes
153
157
  end
154
158
 
155
159
  # ERGO match text with internal spacies?
@@ -321,7 +325,7 @@ module Test; module Unit; module Assertions
321
325
  matcher.matches?(xhtml, &block)
322
326
  message = matcher.failure_message
323
327
  flunk message if message.to_s != ''
324
- # return matcher.builder.doc.to_html # TODO return something reasonable
328
+ return matcher.returnable
325
329
  else
326
330
  _assert_xml(xhtml)
327
331
  return @xdoc
@@ -336,11 +340,6 @@ module Spec; module Matchers
336
340
  end
337
341
  end; end
338
342
 
339
- class Nokogiri::XML::Node
340
- def content= string
341
- self.native_content = encode_special_chars(string.to_s)
342
- end
343
- end # ERGO retire these monkey patches as Nokogiri catches up
344
343
 
345
344
  class Nokogiri::XML::Node
346
345
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assert2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phlip
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-07 00:00:00 -07:00
12
+ date: 2009-05-10 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15