touch_action 1.2.1 → 1.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.
- data/.ruby-version +1 -0
- data/CHANGELOG.md +6 -3
- data/lib/touch_action/capybara_rspec_helper.rb +1 -13
- data/lib/touch_action/javascripts/touch_action.js.erb +28 -5
- data/lib/touch_action/script_generator.rb +0 -4
- data/lib/touch_action/selenium-webdriver.rb +1 -14
- data/lib/touch_action/version.rb +1 -1
- data/lib/touch_action/watir-webdriver.rb +1 -13
- data/spec/features/tap_spec.rb +3 -7
- data/spec/spec_helper.rb +1 -1
- metadata +44 -26
- checksums.yaml +0 -7
- data/lib/touch_action/javascripts/yui_loader.js +0 -22
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.9.3-p547
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
-
## v1.
|
1
|
+
## v1.3.0
|
2
2
|
|
3
|
-
*
|
4
|
-
|
3
|
+
* stable version
|
4
|
+
|
5
|
+
## v1.2.1
|
6
|
+
|
7
|
+
* unusable version
|
5
8
|
|
6
9
|
## v1.1.0
|
7
10
|
|
@@ -6,20 +6,8 @@ module TouchAction
|
|
6
6
|
module RspecHelper
|
7
7
|
|
8
8
|
def touch_action locator, *args
|
9
|
-
page.driver.browser.manage.timeouts.script_timeout = 30
|
10
|
-
page.driver.browser.execute_async_script( TouchAction::ScriptGenerator.yui_loader )
|
11
9
|
final_script = TouchAction::ScriptGenerator.generate_javascript(*args)
|
12
|
-
page.driver.browser.
|
13
|
-
wait_for_page_ready_state
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
def wait_for_page_ready_state
|
18
|
-
sleep(0.5) # mobile browsers wait around 300ms when tapping to check if it isn's a double tap before triggering the link
|
19
|
-
end_time = Time.now + 30
|
20
|
-
while (page.driver.browser.execute_script('return document.readyState' != 'complete') || Time.now > end_time)
|
21
|
-
sleep(0.1)
|
22
|
-
end
|
10
|
+
page.driver.browser.execute_script( final_script, locator )
|
23
11
|
end
|
24
12
|
|
25
13
|
end
|
@@ -1,15 +1,38 @@
|
|
1
1
|
(function( touch_action, $, undefined ) {
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
// private property
|
4
|
+
var execute_gesture = function() {
|
5
5
|
YUI().use('node-event-simulate', function(Y) {
|
6
6
|
|
7
7
|
var node = Y.one(touch_action.element);
|
8
8
|
node.simulateGesture(touch_action.gesture, touch_action.options);
|
9
9
|
|
10
|
-
});
|
10
|
+
});
|
11
|
+
};
|
12
|
+
|
13
|
+
// private method
|
14
|
+
function loadYui() {
|
15
|
+
|
16
|
+
var head = document.getElementsByTagName('head')[0];
|
17
|
+
var script = document.createElement('script');
|
18
|
+
script.type = 'text/javascript';
|
19
|
+
script.src = "//yui.yahooapis.com/3.18.1/build/yui/yui-min.js";
|
20
|
+
|
21
|
+
script.onreadystatechange = execute_gesture;
|
22
|
+
script.onload = execute_gesture;
|
23
|
+
|
24
|
+
head.appendChild(script);
|
25
|
+
|
26
|
+
};
|
27
|
+
// public method
|
28
|
+
touch_action.perform = function() {
|
29
|
+
|
30
|
+
if (typeof YUI == 'undefined') {
|
31
|
+
loadYui();
|
32
|
+
} else {
|
33
|
+
execute_gesture();
|
34
|
+
};
|
11
35
|
|
12
|
-
selenium_finalized_callback();
|
13
36
|
};
|
14
37
|
|
15
38
|
|
@@ -21,4 +44,4 @@ touch_action.gesture = "<%=gesture%>";
|
|
21
44
|
|
22
45
|
touch_action.options = <%=options.to_json%>;
|
23
46
|
|
24
|
-
touch_action.
|
47
|
+
touch_action.perform();
|
@@ -13,10 +13,6 @@ module TouchAction
|
|
13
13
|
rotate: {rotation: -75}
|
14
14
|
}
|
15
15
|
|
16
|
-
def self.yui_loader
|
17
|
-
yui_loader_script = File.read(File.expand_path("../javascripts/yui_loader.js", __FILE__))
|
18
|
-
end
|
19
|
-
|
20
16
|
def self.generate_javascript action, options = {}
|
21
17
|
action = :flick if action == :swipe
|
22
18
|
raise ArgumentError, "The touch action #{action} doesn't exist" unless ACTIONS_WITH_DEFAULT_OPTIONS[action]
|
@@ -5,21 +5,8 @@ module TouchAction
|
|
5
5
|
module SeleniumWebdriver
|
6
6
|
|
7
7
|
def touch_action *args
|
8
|
-
Selenium::WebDriver::Timeouts.new(bridge).script_timeout= 30
|
9
|
-
bridge.executeAsyncScript( TouchAction::ScriptGenerator.yui_loader )
|
10
8
|
final_script = TouchAction::ScriptGenerator.generate_javascript(*args)
|
11
|
-
bridge.
|
12
|
-
wait_for_page_ready_state
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def wait_for_page_ready_state
|
18
|
-
sleep(0.5) # mobile browsers wait around 300ms when tapping to check if it isn's a double tap before triggering the link
|
19
|
-
end_time = Time.now + 30
|
20
|
-
while (bridge.executeScript('return document.readyState' != 'complete') || Time.now > end_time)
|
21
|
-
sleep(0.1)
|
22
|
-
end
|
9
|
+
bridge.executeScript( final_script, self )
|
23
10
|
end
|
24
11
|
|
25
12
|
end
|
data/lib/touch_action/version.rb
CHANGED
@@ -3,21 +3,9 @@ require "touch_action/script_generator"
|
|
3
3
|
|
4
4
|
module TouchAction
|
5
5
|
module WatirWebdriver
|
6
|
-
|
7
6
|
def touch_action *args
|
8
|
-
browser.driver.manage.timeouts.script_timeout = 30
|
9
|
-
browser.driver.execute_async_script( TouchAction::ScriptGenerator.yui_loader )
|
10
7
|
final_script = TouchAction::ScriptGenerator.generate_javascript(*args)
|
11
|
-
browser.
|
12
|
-
wait_for_page_ready_state
|
13
|
-
end
|
14
|
-
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def wait_for_page_ready_state
|
19
|
-
sleep(0.5) # mobile browsers wait around 300ms when tapping to check if it isn's a double tap before triggering the link
|
20
|
-
browser.wait(60)
|
8
|
+
browser.execute_script( final_script, self )
|
21
9
|
end
|
22
10
|
end
|
23
11
|
|
data/spec/features/tap_spec.rb
CHANGED
@@ -6,27 +6,23 @@ RSpec.describe TouchAction do
|
|
6
6
|
@browser.goto('http://localhost:9292/tap')
|
7
7
|
element = @browser.div(id: 'myElement')
|
8
8
|
element.touch_action :tap
|
9
|
+
sleep(5)
|
9
10
|
expect(element.text).to include('tap')
|
10
11
|
end
|
11
12
|
|
12
13
|
it 'should tap link bound by FastClick' do
|
13
14
|
@browser.goto('http://localhost:9292/tap')
|
14
15
|
@browser.a(id: 'fastclick').touch_action :tap
|
16
|
+
sleep(5)
|
15
17
|
expect(@browser.p(id: 'fast-click-test').text).to include('1 times')
|
16
18
|
end
|
17
19
|
|
18
20
|
it "should tap using webdriver capybara", js: true, use_webdriver: :capybara do
|
19
21
|
visit('http://localhost:9292/tap')
|
20
22
|
touch_action '#myElement', :tap
|
23
|
+
sleep(5)
|
21
24
|
expect(find("#myElement").text).to include('tap')
|
22
25
|
end
|
23
26
|
|
24
|
-
it "should tap using selenium", js: true, use_webdriver: :selenium do
|
25
|
-
@browser.navigate.to('http://localhost:9292/tap')
|
26
|
-
element = @browser.find_element(:id, 'myElement')
|
27
|
-
element.touch_action :tap
|
28
|
-
expect(element.text).to include('tap')
|
29
|
-
end
|
30
|
-
|
31
27
|
end
|
32
28
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,125 +1,142 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: touch_action
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Ricardo Nacif
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2015-
|
12
|
+
date: 2015-04-11 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: watir-webdriver
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- -
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: '0'
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '0'
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: capybara
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- -
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: '0'
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- -
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: '0'
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: bundler
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- -
|
51
|
+
- - ~>
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '1.7'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ~>
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '1.7'
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: rake
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
|
-
- -
|
67
|
+
- - ~>
|
60
68
|
- !ruby/object:Gem::Version
|
61
69
|
version: '10.0'
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
|
-
- -
|
75
|
+
- - ~>
|
67
76
|
- !ruby/object:Gem::Version
|
68
77
|
version: '10.0'
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: pry
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
|
-
- -
|
83
|
+
- - ! '>='
|
74
84
|
- !ruby/object:Gem::Version
|
75
85
|
version: '0'
|
76
86
|
type: :development
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
|
-
- -
|
91
|
+
- - ! '>='
|
81
92
|
- !ruby/object:Gem::Version
|
82
93
|
version: '0'
|
83
94
|
- !ruby/object:Gem::Dependency
|
84
95
|
name: rack
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
86
98
|
requirements:
|
87
|
-
- -
|
99
|
+
- - ! '>='
|
88
100
|
- !ruby/object:Gem::Version
|
89
101
|
version: '0'
|
90
102
|
type: :development
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
93
106
|
requirements:
|
94
|
-
- -
|
107
|
+
- - ! '>='
|
95
108
|
- !ruby/object:Gem::Version
|
96
109
|
version: '0'
|
97
110
|
- !ruby/object:Gem::Dependency
|
98
111
|
name: rspec
|
99
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
100
114
|
requirements:
|
101
|
-
- -
|
115
|
+
- - ~>
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: 3.1.0
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
107
122
|
requirements:
|
108
|
-
- -
|
123
|
+
- - ~>
|
109
124
|
- !ruby/object:Gem::Version
|
110
125
|
version: 3.1.0
|
111
126
|
- !ruby/object:Gem::Dependency
|
112
127
|
name: thin
|
113
128
|
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
114
130
|
requirements:
|
115
|
-
- -
|
131
|
+
- - ! '>='
|
116
132
|
- !ruby/object:Gem::Version
|
117
133
|
version: '0'
|
118
134
|
type: :development
|
119
135
|
prerelease: false
|
120
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
121
138
|
requirements:
|
122
|
-
- -
|
139
|
+
- - ! '>='
|
123
140
|
- !ruby/object:Gem::Version
|
124
141
|
version: '0'
|
125
142
|
description: Adds touch gestures simulation to Watir, Selenium and Capybara using
|
@@ -130,8 +147,9 @@ executables: []
|
|
130
147
|
extensions: []
|
131
148
|
extra_rdoc_files: []
|
132
149
|
files:
|
133
|
-
-
|
134
|
-
-
|
150
|
+
- .gitignore
|
151
|
+
- .ruby-version
|
152
|
+
- .travis.yml
|
135
153
|
- CHANGELOG.md
|
136
154
|
- Gemfile
|
137
155
|
- LICENSE.txt
|
@@ -141,7 +159,6 @@ files:
|
|
141
159
|
- lib/touch_action.rb
|
142
160
|
- lib/touch_action/capybara_rspec_helper.rb
|
143
161
|
- lib/touch_action/javascripts/touch_action.js.erb
|
144
|
-
- lib/touch_action/javascripts/yui_loader.js
|
145
162
|
- lib/touch_action/script_generator.rb
|
146
163
|
- lib/touch_action/selenium-webdriver.rb
|
147
164
|
- lib/touch_action/version.rb
|
@@ -173,26 +190,27 @@ files:
|
|
173
190
|
homepage: https://github.com/Ricardonacif/touch_action
|
174
191
|
licenses:
|
175
192
|
- MIT
|
176
|
-
metadata: {}
|
177
193
|
post_install_message:
|
178
194
|
rdoc_options: []
|
179
195
|
require_paths:
|
180
196
|
- lib
|
181
197
|
required_ruby_version: !ruby/object:Gem::Requirement
|
198
|
+
none: false
|
182
199
|
requirements:
|
183
|
-
- -
|
200
|
+
- - ! '>='
|
184
201
|
- !ruby/object:Gem::Version
|
185
202
|
version: '0'
|
186
203
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
204
|
+
none: false
|
187
205
|
requirements:
|
188
|
-
- -
|
206
|
+
- - ! '>='
|
189
207
|
- !ruby/object:Gem::Version
|
190
208
|
version: '0'
|
191
209
|
requirements: []
|
192
210
|
rubyforge_project:
|
193
|
-
rubygems_version:
|
211
|
+
rubygems_version: 1.8.23.2
|
194
212
|
signing_key:
|
195
|
-
specification_version:
|
213
|
+
specification_version: 3
|
196
214
|
summary: Adds touch gestures simulation to Watir-WebDriver, Selenium-WebDriver and
|
197
215
|
Capybara using YUI JS.
|
198
216
|
test_files:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: bfa947340d9b1adb9be7ed82fd79ecd464c860b5
|
4
|
-
data.tar.gz: 8cbef3fbadc44447983247c002980644a58d12b6
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 95c7a7bd87ef4983362ee27d2d27cdd16f3973772dc0f6a72d3aceb595eb0948b28ee53450c6e1a83c125955c392c0676a37061f72b5911f79e22f8783412950
|
7
|
-
data.tar.gz: 85d7accb204826af76f47dcba3429629e9593130ca3e9bd3ed5f4b5f01faef22473664a0e888953b7c43aa08eaf408d8f479742e7961b97b69178c3f34f8739b
|
@@ -1,22 +0,0 @@
|
|
1
|
-
(function(callback) {
|
2
|
-
if (typeof YUI == 'undefined') {
|
3
|
-
var script = document.createElement('script');
|
4
|
-
var head = document.getElementsByTagName('head')[0];
|
5
|
-
var done = false;
|
6
|
-
script.onload = script.onreadystatechange = (function() {
|
7
|
-
if (!done && (!this.readyState || this.readyState == 'loaded'
|
8
|
-
|| this.readyState == 'complete')) {
|
9
|
-
done = true;
|
10
|
-
script.onload = script.onreadystatechange = null;
|
11
|
-
head.removeChild(script);
|
12
|
-
callback();
|
13
|
-
}
|
14
|
-
});
|
15
|
-
script.type = 'text/javascript';
|
16
|
-
script.src = "//yui.yahooapis.com/3.18.1/build/yui/yui-min.js";
|
17
|
-
head.appendChild(script);
|
18
|
-
}
|
19
|
-
else {
|
20
|
-
callback();
|
21
|
-
}
|
22
|
-
})(arguments[arguments.length - 1]);
|