w3c_rspec_validators 0.2.0 → 0.2.1

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.
@@ -8,14 +8,30 @@ module W3cRspecValidators
8
8
  @css_validator = CSSValidator.new validator_uri: Config.get["w3c_css_service_uri"]
9
9
  end
10
10
 
11
+ def try method, try_count = 1
12
+ begin
13
+ method.call
14
+ rescue Exception => e
15
+ raise e if try_count >= 3
16
+ sleep 3
17
+ try(method, try_count + 1)
18
+ end
19
+ end
20
+
11
21
  def validate_html text
12
- @response = @html_validator.validate_text(text)
22
+ validate = Proc.new {
23
+ @response = @html_validator.validate_text(text)
24
+ }
25
+ try validate
13
26
  raise "Error: Invalid validation response! Tip: check if validator.nu engine is configured correctly" if @response.checked_by.blank?
14
27
  @response
15
28
  end
16
29
 
17
30
  def validate_css text
18
- @response = @css_validator.validate_text(text)
31
+ validate = Proc.new {
32
+ @response = @css_validator.validate_text(text)
33
+ }
34
+ try validate
19
35
  raise "Error: Invalid validation response! Tip: check if validator.nu engine is configured correctly" if @response.checked_by.blank?
20
36
  @response
21
37
  end
@@ -1,3 +1,3 @@
1
1
  module W3cRspecValidators
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -14,7 +14,7 @@ describe W3cRspecValidators::Validator do
14
14
  end
15
15
 
16
16
  describe "validate_text" do
17
- it "should raise an exception if validation fails silently" do
17
+ it "should raise an exception if validation fails silently (eg. validator.nu engine misconfiguration)" do
18
18
  class Dummy
19
19
  def checked_by
20
20
  ""
@@ -27,4 +27,16 @@ describe W3cRspecValidators::Validator do
27
27
  }.to raise_exception
28
28
  end
29
29
  end
30
+
31
+ describe "error handling" do
32
+ it "should retry 3 times if there is a connection error" do
33
+ MarkupValidator.any_instance.stub(:validate_text).and_raise "error"
34
+ validator = W3cRspecValidators::Validator.new
35
+ validator.should_receive(:sleep).exactly(2).times
36
+
37
+ lambda {
38
+ validator.validate_html("dummy")
39
+ }.should raise_error()
40
+ end
41
+ end
30
42
  end
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.email = ["dominik@goltermann.cc"]
10
10
  s.homepage = ""
11
11
  s.summary = %q{This gem adds w3c validation in form of rspec matchers}
12
- s.description = %q{At this time it allows for validation of html (including html5) produced by rspec acceptance tests. In addition you can configure the gem to use a locally installed validation service instead of the online w3c servers}
12
+ s.description = %q{Allows testing vor valid html (including html5) and css. In addition you can configure the gem to use a locally installed validation service instead of the online w3c servers}
13
13
 
14
14
  s.rubyforge_project = "w3c_rspec_validators"
15
15
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: w3c_rspec_validators
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-31 00:00:00.000000000 Z
12
+ date: 2012-04-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: w3c_validators
16
- requirement: &19268480 !ruby/object:Gem::Requirement
16
+ requirement: &13658840 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *19268480
24
+ version_requirements: *13658840
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &19267980 !ruby/object:Gem::Requirement
27
+ requirement: &13658240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *19267980
35
+ version_requirements: *13658240
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rails
38
- requirement: &19267560 !ruby/object:Gem::Requirement
38
+ requirement: &13657220 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *19267560
47
- description: At this time it allows for validation of html (including html5) produced
48
- by rspec acceptance tests. In addition you can configure the gem to use a locally
49
- installed validation service instead of the online w3c servers
46
+ version_requirements: *13657220
47
+ description: Allows testing vor valid html (including html5) and css. In addition
48
+ you can configure the gem to use a locally installed validation service instead
49
+ of the online w3c servers
50
50
  email:
51
51
  - dominik@goltermann.cc
52
52
  executables: []