fracture 0.9.1 → 0.10.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.
@@ -64,19 +64,7 @@ class Fracture
64
64
  all.keys - list_to_s(Array(fractures).flatten)
65
65
  end
66
66
 
67
- #def do_check page, label
68
- # #page = page.response.body if page.is_a? CompaniesController
69
- # page = page.response.body if page.respond_to?(:response)
70
- # page = Nokogiri::HTML.parse(page)
71
- # if text?
72
- # page.text.include?(label)
73
- # else
74
- # page.at label
75
- # end
76
- #end
77
67
  def do_check page, label
78
- page = page.response.body if page.respond_to?(:response)
79
-
80
68
  page_parsed = Nokogiri::HTML.parse(page)
81
69
 
82
70
  if text?
@@ -87,6 +75,7 @@ class Fracture
87
75
  end
88
76
 
89
77
  def self.test_fractures(page, is_not, fracture_labels, reverse_fracture_labels=[])
78
+ page = self.get_body(page)
90
79
  failures = {}
91
80
  failures[:should] = []
92
81
  failures[:should_not] = []
@@ -121,4 +110,17 @@ class Fracture
121
110
  failures.merge!(passed: (failures[:should].empty? && failures[:should_not].empty?))
122
111
  failures
123
112
  end
113
+
114
+ def self.get_body(page)
115
+ case
116
+ when page.respond_to?(:response) # Controller
117
+ page.response.body
118
+ when page.respond_to?(:body)
119
+ page.body
120
+ when page.kind_of?(String)
121
+ page
122
+ else
123
+ raise 'Page sent is not valid'
124
+ end
125
+ end
124
126
  end
@@ -1,3 +1,3 @@
1
1
  module FractureVersion
2
- VERSION = "0.9.1"
2
+ VERSION = '0.10.0'
3
3
  end
@@ -72,4 +72,46 @@ describe Fracture do
72
72
  it("should not find it") { @first.do_check("z b", "a").should be_false }
73
73
  end
74
74
  end
75
- end
75
+
76
+ context 'check if page is html or Controller or Integration class' do
77
+ let(:html) { '<html><body></body></html>' }
78
+
79
+ class ControllerTest
80
+ def initialize html
81
+ @html = html
82
+ end
83
+
84
+ def response
85
+ self
86
+ end
87
+
88
+ def body
89
+ @html
90
+ end
91
+ end
92
+
93
+ class IntegrationTest
94
+ def initialize html
95
+ @html = html
96
+ end
97
+
98
+ def body
99
+ @html
100
+ end
101
+ end
102
+
103
+ describe '#get_body' do
104
+ it('just return html when sent') do
105
+ Fracture.get_body(html).should == html
106
+ end
107
+
108
+ it('get response.body from Controller') do
109
+ Fracture.get_body(ControllerTest.new(html)).should == html
110
+ end
111
+
112
+ it('get response.body from Integration') do
113
+ Fracture.get_body(IntegrationTest.new(html)).should == html
114
+ end
115
+ end
116
+ end
117
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fracture
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.10.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-04 00:00:00.000000000 Z
12
+ date: 2013-03-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri