w3c_rspec_validators 0.2.1 → 0.3.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.
@@ -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: