jquery-rails 4.3.1 → 4.4.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.
- checksums.yaml +5 -5
- data/.travis.yml +8 -3
- data/CHANGELOG.md +25 -0
- data/README.md +13 -1
- data/VERSIONS.md +5 -0
- data/lib/jquery/assert_select.rb +16 -5
- data/lib/jquery/rails/version.rb +2 -2
- data/test/assert_select_jquery_test.rb +26 -0
- data/vendor/assets/javascripts/jquery3.js +1554 -935
- data/vendor/assets/javascripts/jquery3.min.js +2 -4
- data/vendor/assets/javascripts/jquery3.min.map +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: dcc6d11eb09cef26ed783513d708893c0d8fcede0b5027fc5906e59feeb880b9
|
4
|
+
data.tar.gz: 0e0c30ec8043042ccdc6099fb6f5f2b6055f8b52a42298fb35144280d15661da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a417086a5430147e22d452f1d192494d89890b7417257f759c721023f71a3f620a4f7328a5a5bd1c7e746786b861bc90aa1ba0174749b0a3f9dcef72a5e2ea78
|
7
|
+
data.tar.gz: badccf9a2417c5ac5623f667317ac33e2e27cf8aaf562be71a139f207006fd8469234e2cd48fdcd9860e658710dff4bd53272066e688033fceddeced9267af6d
|
data/.travis.yml
CHANGED
@@ -4,15 +4,20 @@ language: ruby
|
|
4
4
|
rvm:
|
5
5
|
- 1.9.3
|
6
6
|
- 2.0.0
|
7
|
-
- 2.1
|
8
|
-
- 2.2.
|
9
|
-
- 2.3.
|
7
|
+
- 2.1.10
|
8
|
+
- 2.2.9
|
9
|
+
- 2.3.6
|
10
|
+
- 2.4.10
|
11
|
+
- 2.5.8
|
12
|
+
- 2.6.6
|
13
|
+
- 2.7.1
|
10
14
|
- jruby
|
11
15
|
- ruby-head
|
12
16
|
matrix:
|
13
17
|
fast_finish: true
|
14
18
|
allow_failures:
|
15
19
|
- rvm: jruby
|
20
|
+
- rvm: ruby-head
|
16
21
|
notifications:
|
17
22
|
email: false
|
18
23
|
irc:
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,28 @@
|
|
1
|
+
## 4.4.0
|
2
|
+
|
3
|
+
- update jquery to 3.5.1 (note: [3.5.0 contains important security updates](https://github.com/advisories/GHSA-jpcq-cgw6-v4j6))
|
4
|
+
- unescape dollar signs and backticks in `assert_select_jquery` to match
|
5
|
+
Rails updated behavior.
|
6
|
+
|
7
|
+
## 4.3.5
|
8
|
+
|
9
|
+
- update jquery to 3.4.1
|
10
|
+
|
11
|
+
## 4.3.4
|
12
|
+
|
13
|
+
- update jquery to 3.4.0
|
14
|
+
|
15
|
+
## 4.3.3
|
16
|
+
|
17
|
+
- update jquery to 3.3.1
|
18
|
+
|
19
|
+
## 4.3.2
|
20
|
+
|
21
|
+
- update jquery to 3.3.0
|
22
|
+
- Add possibility to test HTML: all, attribute prefix, attribute contains,
|
23
|
+
attribute ends with, child, and class selectors
|
24
|
+
- Fix matching mutiple calls for the same selector/function exception
|
25
|
+
|
1
26
|
## 4.3.1
|
2
27
|
|
3
28
|
- update jquery to 3.2.1
|
data/README.md
CHANGED
@@ -24,6 +24,12 @@ versions of jQuery.
|
|
24
24
|
|
25
25
|
## Installation
|
26
26
|
|
27
|
+
Add
|
28
|
+
```
|
29
|
+
gem 'jquery-rails'
|
30
|
+
```
|
31
|
+
to your Gemfile.
|
32
|
+
|
27
33
|
The jquery and jquery-ujs files will be added to the asset pipeline and available for you to use. If they're not already in `app/assets/javascripts/application.js` by default, add these lines:
|
28
34
|
|
29
35
|
```js
|
@@ -31,6 +37,12 @@ The jquery and jquery-ujs files will be added to the asset pipeline and availabl
|
|
31
37
|
//= require jquery_ujs
|
32
38
|
```
|
33
39
|
|
40
|
+
If you are running Rails 5.1 and up, and if you have included `//= require rails-ujs`, then `jquery_ujs` is not needed anymore. You can just add:
|
41
|
+
|
42
|
+
```js
|
43
|
+
//= require jquery
|
44
|
+
```
|
45
|
+
|
34
46
|
If you want to use jQuery 2, you can require `jquery2` instead:
|
35
47
|
|
36
48
|
```js
|
@@ -66,4 +78,4 @@ jquery-rails is released under the [MIT License](MIT-LICENSE).
|
|
66
78
|
|
67
79
|
## Acknowledgements
|
68
80
|
|
69
|
-
Many thanks are due to all of [the jquery-rails contributors](https://github.com/rails/jquery-rails/graphs/contributors). Special thanks to [JangoSteve](http://github.com/JangoSteve) for tirelessly answering questions and accepting patches, and the [Rails Core Team](https://github.com/
|
81
|
+
Many thanks are due to all of [the jquery-rails contributors](https://github.com/rails/jquery-rails/graphs/contributors). Special thanks to [JangoSteve](http://github.com/JangoSteve) for tirelessly answering questions and accepting patches, and the [Rails Core Team](https://github.com/orgs/rails/people) for making jquery-rails an official part of Rails 3.1.
|
data/VERSIONS.md
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
| Gem | jQuery | jQuery UJS | jQuery UI |
|
4
4
|
|--------|--------|------------| ----------|
|
5
|
+
| 4.4.0 | 1.12.4 & 2.2.4 & 3.5.1 | 1.2.2 | - |
|
6
|
+
| 4.3.5 | 1.12.4 & 2.2.4 & 3.4.1 | 1.2.2 | - |
|
7
|
+
| 4.3.4 | 1.12.4 & 2.2.4 & 3.4.0 | 1.2.2 | - |
|
8
|
+
| 4.3.3 | 1.12.4 & 2.2.4 & 3.3.1 | 1.2.2 | - |
|
9
|
+
| 4.3.2 | 1.12.4 & 2.2.4 & 3.3.0 | 1.2.2 | - |
|
5
10
|
| 4.3.1 | 1.12.4 & 2.2.4 & 3.2.1 | 1.2.2 | - |
|
6
11
|
| 4.3.0 | 1.12.4 & 2.2.4 & 3.2.0 | 1.2.2 | - |
|
7
12
|
| 4.2.2 | 1.12.4 & 2.2.4 & 3.1.1 | 1.2.2 | - |
|
data/lib/jquery/assert_select.rb
CHANGED
@@ -47,9 +47,9 @@ module Rails::Dom::Testing::Assertions::SelectorAssertions
|
|
47
47
|
# assert_select '.product'
|
48
48
|
# end
|
49
49
|
|
50
|
-
PATTERN_HTML = "['\"]((\\\\\"|[^\"])*)['\"]"
|
50
|
+
PATTERN_HTML = "['\"]((\\\\\"|\\\\'|[^\"'])*)['\"]"
|
51
51
|
PATTERN_UNICODE_ESCAPED_CHAR = /\\u([0-9a-zA-Z]{4})/
|
52
|
-
SKELETAL_PATTERN = "(?:jQuery|\\$)\\(%s\\)\\.%s\\(%s\\);"
|
52
|
+
SKELETAL_PATTERN = "(?:jQuery|\\$)\\(%s\\)\\.%s\\(%s\\)[;]?"
|
53
53
|
|
54
54
|
def assert_select_jquery(*args, &block)
|
55
55
|
jquery_method = args.first.is_a?(Symbol) ? args.shift : nil
|
@@ -91,14 +91,14 @@ module Rails::Dom::Testing::Assertions::SelectorAssertions
|
|
91
91
|
|
92
92
|
if block_given?
|
93
93
|
@selected ||= nil
|
94
|
-
fragments = Nokogiri::HTML::Document.new
|
94
|
+
fragments = Nokogiri::HTML::Document.new.fragment
|
95
95
|
|
96
96
|
if matched_pattern
|
97
97
|
response.body.scan(Regexp.new(matched_pattern)).each do |match|
|
98
98
|
flunk 'This function can\'t have HTML argument' if match.is_a?(String)
|
99
99
|
|
100
|
-
doc = Nokogiri::HTML::
|
101
|
-
doc.
|
100
|
+
doc = Nokogiri::HTML::DocumentFragment.parse(unescape_js(match.first))
|
101
|
+
doc.children.each do |child|
|
102
102
|
fragments << child if child.element?
|
103
103
|
end
|
104
104
|
end
|
@@ -124,6 +124,8 @@ module Rails::Dom::Testing::Assertions::SelectorAssertions
|
|
124
124
|
unescaped.gsub!('\n', "\n")
|
125
125
|
unescaped.gsub!('\076', '>')
|
126
126
|
unescaped.gsub!('\074', '<')
|
127
|
+
unescaped.gsub!(/\\\$/, '$')
|
128
|
+
unescaped.gsub!(/\\`/, '`')
|
127
129
|
# js encodes non-ascii characters.
|
128
130
|
unescaped.gsub!(PATTERN_UNICODE_ESCAPED_CHAR) {|u| [$1.hex].pack('U*')}
|
129
131
|
unescaped
|
@@ -134,6 +136,15 @@ module Rails::Dom::Testing::Assertions::SelectorAssertions
|
|
134
136
|
|
135
137
|
id = selector.gsub('[', '\[')
|
136
138
|
id.gsub!(']', '\]')
|
139
|
+
id.gsub!('*', '\*')
|
140
|
+
id.gsub!('(', '\(')
|
141
|
+
id.gsub!(')', '\)')
|
142
|
+
id.gsub!('.', '\.')
|
143
|
+
id.gsub!('|', '\|')
|
144
|
+
id.gsub!('^', '\^')
|
145
|
+
id.gsub!('$', '\$')
|
146
|
+
id.gsub!('+', "\\\\+")
|
147
|
+
id.gsub!(',', '\,')
|
137
148
|
|
138
149
|
id
|
139
150
|
end
|
data/lib/jquery/rails/version.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'ostruct'
|
1
2
|
require_relative 'test_helper'
|
2
3
|
require_relative '../lib/jquery/assert_select'
|
3
4
|
|
@@ -8,12 +9,22 @@ class AssertSelectJQueryTest < ActiveSupport::TestCase
|
|
8
9
|
JAVASCRIPT_TEST_OUTPUT = <<-JS
|
9
10
|
$("#card").show("blind", 1000);
|
10
11
|
$("#id").html('<div><p>something</p></div>');
|
12
|
+
$('#card').html('<div><p>something else</p></div>');
|
11
13
|
jQuery("#id").replaceWith("<div><p>something</p></div>");
|
12
14
|
$("<div><p>something</p></div>").appendTo("#id");
|
15
|
+
$("<div><p>something else</p></div>").appendTo("#id");
|
13
16
|
jQuery("<div><p>something</p></div>").prependTo("#id");
|
14
17
|
$('#id').remove();
|
15
18
|
jQuery("#id").hide();
|
16
19
|
$("[data-placeholder~=name]").remove();
|
20
|
+
$("#cart tr:not(.total_line) > *").remove();
|
21
|
+
$("[href|=\"val\"][href$=\"val\"][href^=\"val\"]").remove();
|
22
|
+
$("tr + td, li").remove();
|
23
|
+
|
24
|
+
// without semicolon
|
25
|
+
$("#browser_cart").hide("blind", 1000)
|
26
|
+
|
27
|
+
$('#item').html('<div><span>\\`Total\\`: \\$12.34</span></div>');
|
17
28
|
JS
|
18
29
|
|
19
30
|
setup do
|
@@ -23,6 +34,7 @@ class AssertSelectJQueryTest < ActiveSupport::TestCase
|
|
23
34
|
def test_target_as_receiver
|
24
35
|
assert_nothing_raised do
|
25
36
|
assert_select_jquery :show, :blind, '#card'
|
37
|
+
assert_select_jquery :hide, :blind, '#browser_cart'
|
26
38
|
assert_select_jquery :html, '#id' do
|
27
39
|
assert_select 'p', 'something'
|
28
40
|
end
|
@@ -30,17 +42,31 @@ class AssertSelectJQueryTest < ActiveSupport::TestCase
|
|
30
42
|
assert_select 'p', 'something'
|
31
43
|
end
|
32
44
|
assert_select_jquery :remove, "[data-placeholder~=name]"
|
45
|
+
assert_select_jquery :remove, "#cart tr:not(.total_line) > *"
|
46
|
+
assert_select_jquery :remove, "[href|=\"val\"][href$=\"val\"][href^=\"val\"]"
|
47
|
+
assert_select_jquery :remove, "tr + td, li"
|
48
|
+
|
49
|
+
assert_select_jquery :html, '#item' do
|
50
|
+
assert_select 'span', '`Total`: $12.34'
|
51
|
+
end
|
33
52
|
end
|
34
53
|
|
35
54
|
assert_raise Minitest::Assertion, "No JQuery call matches [:show, :some_wrong]" do
|
36
55
|
assert_select_jquery :show, :some_wrong
|
37
56
|
end
|
57
|
+
|
58
|
+
assert_raise Minitest::Assertion, "<something else> was expected but was <something>" do
|
59
|
+
assert_select_jquery :html, '#id' do
|
60
|
+
assert_select 'p', 'something else'
|
61
|
+
end
|
62
|
+
end
|
38
63
|
end
|
39
64
|
|
40
65
|
def test_target_as_argument
|
41
66
|
assert_nothing_raised do
|
42
67
|
assert_select_jquery :appendTo, '#id' do
|
43
68
|
assert_select 'p', 'something'
|
69
|
+
assert_select 'p', 'something else'
|
44
70
|
end
|
45
71
|
assert_select_jquery :prependTo, '#id' do
|
46
72
|
assert_select 'p', 'something'
|