w3c_rspec_validators 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e38ccd736f2de04563e2b28fa08369342aaa4e9a9e76945f36a17f9ee453f499
4
+ data.tar.gz: a003e4dac5b1960593ea848d0f1d0e4bad9ec031105330ac9fa25bbb8e4e2c30
5
+ SHA512:
6
+ metadata.gz: ffa189cb7fe33744cbc17d6bf7fdcbd4ab293a08df7b4400d6511ebb34dd9d3d0ebca0cf3000bec41e8b99206f1cbc30202ad5e0d7da38a4b11dbf4ee7880aa9
7
+ data.tar.gz: 82dafcdbfd4b52047035a64acef9e9601ea093b40541ff2174ed92ce677cf3a9adb03b2c08f26349a9c0b037403ced185bbcc9c9bac89175f1e3a3628c70398d
data/Gemfile CHANGED
@@ -2,10 +2,6 @@ source "http://rubygems.org"
2
2
 
3
3
  gem "w3c_validators"
4
4
  gem "rspec"
5
- gem "linecache19", git: "git://github.com/mark-moseley/linecache", require: "ruby-debug"
6
- gem "ruby-debug-base19x", "~> 0.11.30.pre4"
7
- gem "ruby-debug19"
8
-
9
5
 
10
6
  # Specify your gem's dependencies in w3c_rspec_validators.gemspec
11
7
  gemspec
@@ -1,7 +1,7 @@
1
1
  require "rails"
2
2
 
3
3
  module W3cRspecValidators
4
-
4
+
5
5
  class Railtie < Rails::Railtie
6
6
  initializer "initialize config" do
7
7
  config_file = Rails.root.join("config", "w3c_rspec_validators.yml")
@@ -12,14 +12,14 @@ module W3cRspecValidators
12
12
  # puts ActionDispatch::Routing::UrlFor::url_for("/")
13
13
  end
14
14
  end
15
-
15
+
16
16
  class Config
17
17
  @@config = {
18
- validator_uri: ""
18
+ validator_uri: ""
19
19
  }
20
20
 
21
21
  def self.load! config_file
22
- @@config = YAML.load(File.open(config_file))["config"]
22
+ @@config = YAML.load(File.open(config_file))["config"]
23
23
  end
24
24
 
25
25
  def self.get
@@ -1,18 +1,18 @@
1
1
  module W3cRspecValidators
2
-
2
+
3
3
  RSpec::Matchers.define :be_valid_html do
4
4
  validator = Validator.new
5
5
  match do |body|
6
6
  validator.validate_html(body)
7
7
  validator.response.errors.length == 0
8
8
  end
9
- failure_message_for_should do |actual|
9
+ failure_message do |actual|
10
10
  validator.response.errors.map do |err|
11
11
  ErrorParser.parse_html_error(err, actual)
12
12
  end.join("\n")
13
13
  end
14
14
  end
15
-
15
+
16
16
  RSpec::Matchers.define :be_valid_css do
17
17
  validator = Validator.new
18
18
  match do |css|
@@ -20,7 +20,7 @@ module W3cRspecValidators
20
20
  validator.response.errors.length == 0
21
21
  end
22
22
 
23
- failure_message_for_should do |actual|
23
+ failure_message do |actual|
24
24
  validator.response.errors.map do |err|
25
25
  ErrorParser.parse_css_error(err, actual)
26
26
  end.join("\n")
@@ -1,10 +1,12 @@
1
1
  module W3cRspecValidators
2
2
  class Validator
3
+ class Error < StandardError; end
4
+
3
5
  attr_reader :response
4
6
  include W3CValidators
5
7
 
6
8
  def initialize
7
- @html_validator = MarkupValidator.new validator_uri: Config.get["w3c_service_uri"]
9
+ @html_validator = NuValidator.new validator_uri: Config.get["w3c_service_uri"]
8
10
  @css_validator = CSSValidator.new validator_uri: Config.get["w3c_css_service_uri"]
9
11
  end
10
12
 
@@ -23,7 +25,7 @@ module W3cRspecValidators
23
25
  @response = @html_validator.validate_text(text)
24
26
  }
25
27
  try validate
26
- raise "Error: Invalid validation response! Tip: check if validator.nu engine is configured correctly" if @response.checked_by.blank?
28
+ raise Error, "Error: Invalid validation response! Tip: check if validator.nu engine is configured correctly" if @response.checked_by.blank?
27
29
  @response
28
30
  end
29
31
 
@@ -32,7 +34,7 @@ module W3cRspecValidators
32
34
  @response = @css_validator.validate_text(text)
33
35
  }
34
36
  try validate
35
- raise "Error: Invalid validation response! Tip: check if validator.nu engine is configured correctly" if @response.checked_by.blank?
37
+ raise Error, "Error: Invalid validation response! Tip: check if validator.nu engine is configured correctly" if @response.checked_by.blank?
36
38
  @response
37
39
  end
38
40
  end
@@ -1,3 +1,3 @@
1
1
  module W3cRspecValidators
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -2,17 +2,23 @@ require "w3c_rspec_validators"
2
2
 
3
3
  describe "css_files" do
4
4
  describe "self.compiled" do
5
-
5
+
6
6
  before(:each) do
7
- Object.should_receive(:system).with "rake -q assets:precompile"
8
- Rails.stub(:root).and_return "railsroot"
9
- FileUtils.should_receive(:rm_rf).with "railsroot/public/assets/"
7
+ expect(Object).to receive(:system).with("rake -q assets:precompile")
8
+ expect(Rails).to receive(:root).and_return(Pathname.new("railsroot"))
9
+ expect(FileUtils).to receive(:rm_rf).with("railsroot/public/assets/")
10
10
  end
11
11
 
12
12
  it "should read css files from a directory" do
13
13
  directory = File.dirname(__FILE__)
14
- W3cRspecValidators::CssFiles.compiled(["#{directory}/fixtures/*.css"])
15
- .should == "#home {}\nbody {\n}\n"
14
+
15
+ compiled = W3cRspecValidators::CssFiles.compiled(["#{directory}/fixtures/*.css"])
16
+
17
+ expect(compiled).to eq <<~CSS
18
+ body {
19
+ }
20
+ #home {}
21
+ CSS
16
22
  end
17
23
  end
18
24
  end
@@ -4,8 +4,8 @@ describe "error_parser" do
4
4
 
5
5
  describe "self.parse_css" do
6
6
  before(:each) do
7
- @css_error_message = "ERROR; URI: file://localhost/TextArea; line 7:
8
-
7
+ @css_error_message = "ERROR; URI: file://localhost/TextArea; line 7:
8
+
9
9
  Property foo doesn't exist :"
10
10
  @css = "
11
11
  body {
@@ -18,9 +18,10 @@ body {
18
18
  end
19
19
 
20
20
  it "should properly format css errors" do
21
- W3cRspecValidators::ErrorParser.parse_css_error(@css_error_message, @css)
22
- .should == "######
23
- Property foo doesn't exist :
21
+ error = W3cRspecValidators::ErrorParser.parse_css_error(@css_error_message, @css)
22
+
23
+ expect(error).to eq "######
24
+ Property foo doesn't exist :
24
25
  Real code location(guessed) in File ../../app/assets/stylesheets/home.css.scss on line 2
25
26
 
26
27
  Code context:
@@ -46,8 +47,9 @@ Code context:
46
47
  end
47
48
 
48
49
  it "should properly format a html error message" do
49
- W3cRspecValidators::ErrorParser.parse_html_error(@html_error_message, @html)
50
- .should == "######
50
+ error = W3cRspecValidators::ErrorParser.parse_html_error(@html_error_message, @html)
51
+
52
+ expect(error).to eq "######
51
53
  line 7: An img element must have an alt attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.
52
54
 
53
55
  </head>
@@ -21,29 +21,37 @@ describe "rspec matchers" do
21
21
 
22
22
  describe "be_valid_html" do
23
23
  it "should be valid" do
24
- "<!DOCTYPE HTML SYSTEM>
24
+ body = <<~HTML
25
+ <!DOCTYPE HTML>
25
26
  <html>
26
27
  <head>
27
28
  <title>dd</title>
28
29
  </head>
29
30
  <body>
30
31
  </body>
31
- </html>".should be_valid_html
32
+ </html>
33
+ HTML
34
+
35
+ expect(body).to be_valid_html
32
36
  end
33
37
 
34
38
  it "should not be valid" do
35
- "<!DOCTYPE HTML SYSTEM>
39
+ body = <<~HTML
40
+ <!DOCTYPE HTML>
36
41
  <html>
37
42
  <head>
38
43
  <titled>dd</title>
39
44
  </head>
40
45
  <body></body>
41
- </html>".should_not be_valid_html
46
+ </html>
47
+ HTML
48
+
49
+ expect(body).to_not be_valid_html
42
50
  end
43
51
 
44
52
  it "should complain about an missing src attribute" do
45
- lambda {
46
- "<!DOCTYPE HTML SYSTEM>
53
+ body = <<~HTML
54
+ <!DOCTYPE HTML>
47
55
  <html>
48
56
  <head>
49
57
  <title>dd</title>
@@ -51,35 +59,36 @@ describe "rspec matchers" do
51
59
  <body>
52
60
  <img />
53
61
  </body>
54
- </html>".should be_valid_html
55
- }.should fail_matching(/line 7: required attribute "SRC" not specified.*<img \/>/m)
62
+ </html>
63
+ HTML
64
+
65
+ expect {
66
+ expect(body).to be_valid_html
67
+ }.to fail_matching(/line 7: Element “img” is missing required attr/m)
56
68
  end
57
69
 
58
70
  it "should use a custom uri if provided" do
59
- W3cRspecValidators::Config.stub(:get).and_return("w3c_service_uri" => "http://blubb.de")
60
-
61
- validator = MarkupValidator.new
62
- MarkupValidator.should_receive(:new).with(:validator_uri => "http://blubb.de").and_return validator
71
+ allow(W3cRspecValidators::Config).to receive(:get).and_return("w3c_service_uri" => "https://validator.nu/")
63
72
 
64
- "dummy".should_not be_valid_html
73
+ expect(NuValidator).to receive(:new).with(validator_uri: "https://validator.nu/").and_call_original
74
+
75
+ expect("dummy").to_not be_valid_html
65
76
  end
66
77
  end
67
78
 
68
79
  describe "be_valid_css" do
69
80
  it "should be valid" do
70
- "body {}".should be_valid_css
81
+ expect("body {}").to be_valid_css
71
82
  end
72
83
 
73
84
  it "should not be valid" do
74
- "body { foo: 12px; }".should_not be_valid_css
85
+ expect("body { foo: 12px; }").to_not be_valid_css
75
86
  end
76
87
 
77
88
  it "should not be valid" do
78
- lambda {
79
- "body { foo: 12px; }".should be_valid_css
80
- }.should fail_matching(/Property foo doesn't exist/)
89
+ expect {
90
+ expect("body { foo: 12px; }").to be_valid_css
91
+ }.to fail_matching(/Property foo doesn't exist/)
81
92
  end
82
-
83
93
  end
84
-
85
94
  end
@@ -5,9 +5,9 @@ describe W3cRspecValidators::Validator do
5
5
 
6
6
  describe "initialize" do
7
7
  it "should initialize MarkupValidator with config value" do
8
- W3cRspecValidators::Config.stub(:get).and_return("w3c_service_uri" => "http://blubb.de", "w3c_css_service_uri" => "http://test.de")
9
- MarkupValidator.should_receive(:new).with(validator_uri: "http://blubb.de")
10
- CSSValidator.should_receive(:new).with(validator_uri: "http://test.de")
8
+ allow(W3cRspecValidators::Config).to receive(:get).and_return("w3c_service_uri" => "http://blubb.de", "w3c_css_service_uri" => "http://test.de")
9
+ expect(NuValidator).to receive(:new).with(validator_uri: "http://blubb.de")
10
+ expect(CSSValidator).to receive(:new).with(validator_uri: "http://test.de")
11
11
 
12
12
  W3cRspecValidators::Validator.new
13
13
  end
@@ -20,23 +20,24 @@ describe W3cRspecValidators::Validator do
20
20
  ""
21
21
  end
22
22
  end
23
- MarkupValidator.any_instance.stub(:validate_text).and_return Dummy.new
24
-
23
+
24
+ allow_any_instance_of(NuValidator).to receive(:validate_text).and_return(Dummy.new)
25
+
25
26
  expect {
26
- W3cRspecValidators::Validator.new.validate_text("dummy")
27
- }.to raise_exception
27
+ W3cRspecValidators::Validator.new.validate_html("dummy")
28
+ }.to raise_exception(W3cRspecValidators::Validator::Error)
28
29
  end
29
30
  end
30
31
 
31
32
  describe "error handling" do
32
33
  it "should retry 3 times if there is a connection error" do
33
- MarkupValidator.any_instance.stub(:validate_text).and_raise "error"
34
+ allow_any_instance_of(NuValidator).to receive(:validate_text).and_raise(StandardError)
34
35
  validator = W3cRspecValidators::Validator.new
35
- validator.should_receive(:sleep).exactly(2).times
36
-
37
- lambda {
36
+ expect(validator).to receive(:sleep).exactly(2).times
37
+
38
+ expect {
38
39
  validator.validate_html("dummy")
39
- }.should raise_error()
40
+ }.to raise_exception(StandardError)
40
41
  end
41
42
  end
42
43
  end
metadata CHANGED
@@ -1,49 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: w3c_rspec_validators
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Dominik Goltermann
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-04-23 00:00:00.000000000 Z
11
+ date: 2018-12-30 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: w3c_validators
16
- requirement: &13658840 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *13658840
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: rspec
27
- requirement: &13658240 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *13658240
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: rails
38
- requirement: &13657220 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ! '>='
45
+ - - ">="
42
46
  - !ruby/object:Gem::Version
43
47
  version: '0'
44
48
  type: :runtime
45
49
  prerelease: false
46
- version_requirements: *13657220
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
47
55
  description: Allows testing vor valid html (including html5) and css. In addition
48
56
  you can configure the gem to use a locally installed validation service instead
49
57
  of the online w3c servers
@@ -53,7 +61,7 @@ executables: []
53
61
  extensions: []
54
62
  extra_rdoc_files: []
55
63
  files:
56
- - .gitignore
64
+ - ".gitignore"
57
65
  - Gemfile
58
66
  - README.md
59
67
  - Rakefile
@@ -75,27 +83,25 @@ files:
75
83
  - w3c_rspec_validators.gemspec
76
84
  homepage: ''
77
85
  licenses: []
86
+ metadata: {}
78
87
  post_install_message:
79
88
  rdoc_options: []
80
89
  require_paths:
81
90
  - lib
82
91
  required_ruby_version: !ruby/object:Gem::Requirement
83
- none: false
84
92
  requirements:
85
- - - ! '>='
93
+ - - ">="
86
94
  - !ruby/object:Gem::Version
87
95
  version: '0'
88
96
  required_rubygems_version: !ruby/object:Gem::Requirement
89
- none: false
90
97
  requirements:
91
- - - ! '>='
98
+ - - ">="
92
99
  - !ruby/object:Gem::Version
93
100
  version: '0'
94
101
  requirements: []
95
102
  rubyforge_project: w3c_rspec_validators
96
- rubygems_version: 1.8.10
103
+ rubygems_version: 2.7.6
97
104
  signing_key:
98
- specification_version: 3
105
+ specification_version: 4
99
106
  summary: This gem adds w3c validation in form of rspec matchers
100
107
  test_files: []
101
- has_rdoc: