watir-classic 4.2.0 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,9 @@
1
+ == 4.3.0 - 2016/04/21
2
+
3
+ * Add Element#inner_html and Element#outer_html
4
+ * Bump win32screenshot dependency version
5
+ * Fix LoadError for dl/import in Ruby 2.2
6
+
1
7
  == 4.2.0 - 2015/06/28
2
8
 
3
9
  * Bump win32screenshot dependency version
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.2.0
1
+ 4.3.0
@@ -36,7 +36,9 @@ module Watir
36
36
  attr_ole :title
37
37
  attr_ole :class_name, :className
38
38
  attr_ole :unique_number, :uniqueNumber
39
- attr_ole :html, :outerHTML
39
+ attr_ole :inner_html, :innerHTML
40
+ attr_ole :outer_html, :outerHTML
41
+ alias_method :html, :outer_html
40
42
 
41
43
  # number of spaces that separate the property from the value in the to_s method
42
44
  # @private
@@ -1,5 +1,9 @@
1
- require 'dl/import'
2
- require 'dl/struct'
1
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.2.0')
2
+ require 'fiddle/import'
3
+ else
4
+ require 'dl/import'
5
+ require 'dl/struct'
6
+ end
3
7
  require 'Win32API'
4
8
 
5
9
  module Watir
@@ -8,8 +12,14 @@ module Watir
8
12
  # this will find the IEDialog.dll file in its build location
9
13
  @@iedialog_file = (File.expand_path(File.dirname(__FILE__) + '/..') + "/watir-classic/IEDialog/Release/IEDialog.dll").gsub('/', '\\')
10
14
 
11
- GetUnknown = Win32API.new(@@iedialog_file, 'GetUnknown', ['l', 'p'], 'v')
12
- User32 = DL.dlopen('user32')
15
+ GetUnknown = Win32API.new(@@iedialog_file, 'GetUnknown', ['l', 'p'], 'V')
16
+
17
+
18
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.2.0')
19
+ User32 = Fiddle.dlopen('user32')
20
+ else
21
+ User32 = DL.dlopen('user32')
22
+ end
13
23
  if RUBY_VERSION =~ /^1\.8/
14
24
  FindWindowEx = User32['FindWindowEx', 'LLLpp']
15
25
  # method for this found in wet-winobj/wet/winobjects/WinUtils.rb
@@ -20,7 +30,7 @@ module Watir
20
30
  raise NotImplementedError, "1.9's DL API not compatible with 1.8, see http://www.ruby-forum.com/topic/138277"
21
31
  end
22
32
  end
23
-
33
+
24
34
  ## GetWindows Constants
25
35
  GW_HWNDFIRST = 0
26
36
  GW_HWNDLAST = 1
@@ -38,4 +48,4 @@ module Watir
38
48
  rtn == 1
39
49
  end
40
50
  end
41
- end
51
+ end
@@ -8,6 +8,10 @@ elsif RUBY_VERSION =~ /^1\.9/
8
8
  $LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'watir-classic', 'win32ole', '1.9.3'))
9
9
  elsif RUBY_VERSION =~ /^2\.0/
10
10
  $LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'watir-classic', 'win32ole', '2.0.0'))
11
+ elsif RUBY_VERSION =~ /^2\.1/
12
+ $LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'watir-classic', 'win32ole', '2.1.0'))
13
+ elsif RUBY_VERSION =~ /^2\.2/
14
+ $LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'watir-classic', 'win32ole', '2.2.0'))
11
15
  else
12
16
  # loading win32ole from stdlib
13
17
  end
@@ -0,0 +1,64 @@
1
+ From 00a7fb5e218b730337bf19afb6afe5a5ba6e8161 Mon Sep 17 00:00:00 2001
2
+ From: Justin Ko <jkotests@gmail.com>
3
+ Date: Tue, 1 Mar 2016 13:22:19 -0500
4
+ Subject: [PATCH 1/1] Patch for Watir-Classic
5
+
6
+ ---
7
+ ext/win32ole/win32ole.c | 34 ++++++++++++++++++++++++++++++++++
8
+ 1 file changed, 34 insertions(+)
9
+
10
+ diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c
11
+ index 57da91c..8636514 100644
12
+ --- a/ext/win32ole/win32ole.c
13
+ +++ b/ext/win32ole/win32ole.c
14
+ @@ -9112,6 +9112,39 @@ free_enc2cp(void)
15
+ st_free_table(enc2cp_table);
16
+ }
17
+
18
+ +/*
19
+ + * WIN32OLE.connect_unknown( pUnknown ) --> aWIN32OLE
20
+ + * ----
21
+ + * Returns running OLE Automation object or WIN32OLE object from an IUnknown pointer
22
+ + * the IUnknown pointer is passed in as a FIXNUM
23
+ + */
24
+ +static VALUE
25
+ +fole_s_connect_unknown(VALUE self, VALUE iUnknown)
26
+ +{
27
+ + HRESULT hr;
28
+ + IDispatch *pDispatch;
29
+ + IUnknown *pUnknown;
30
+ +
31
+ + /* initialize to use OLE */
32
+ + ole_initialize();
33
+ +
34
+ + //cast from int to IUnknown*
35
+ + pUnknown = (IUnknown*)FIX2INT(iUnknown);
36
+ +
37
+ + hr = pUnknown->lpVtbl->QueryInterface(pUnknown, &IID_IDispatch,
38
+ + (void **)&pDispatch);
39
+ + if(FAILED(hr)) {
40
+ + OLE_RELEASE(pUnknown);
41
+ + ole_raise(hr, eWIN32OLERuntimeError,
42
+ + "Failed to connect to WIN32OLE server `%d'",
43
+ + FIX2INT(iUnknown));
44
+ + }
45
+ +
46
+ + OLE_RELEASE(pUnknown);
47
+ +
48
+ + return create_win32ole_object(self, pDispatch, 0,0);
49
+ +}
50
+ +
51
+ void
52
+ Init_win32ole(void)
53
+ {
54
+ @@ -9145,6 +9178,7 @@ Init_win32ole(void)
55
+ rb_define_method(cWIN32OLE, "initialize", fole_initialize, -1);
56
+
57
+ rb_define_singleton_method(cWIN32OLE, "connect", fole_s_connect, -1);
58
+ + rb_define_singleton_method(cWIN32OLE, "connect_unknown", fole_s_connect_unknown, 1);
59
+ rb_define_singleton_method(cWIN32OLE, "const_load", fole_s_const_load, -1);
60
+
61
+ rb_define_singleton_method(cWIN32OLE, "ole_free", fole_s_free, 1);
62
+ --
63
+ 2.5.3.windows.1
64
+
@@ -0,0 +1,64 @@
1
+ From ef7d00ae15f4ffa46595cb3c3838d0369d9ae754 Mon Sep 17 00:00:00 2001
2
+ From: Justin Ko <jkotests@gmail.com>
3
+ Date: Tue, 1 Mar 2016 11:10:09 -0500
4
+ Subject: [PATCH 1/1] Patch for Watir-Classic
5
+
6
+ ---
7
+ ext/win32ole/win32ole.c | 34 ++++++++++++++++++++++++++++++++++
8
+ 1 file changed, 34 insertions(+)
9
+
10
+ diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c
11
+ index 4d664e8..0be255c 100644
12
+ --- a/ext/win32ole/win32ole.c
13
+ +++ b/ext/win32ole/win32ole.c
14
+ @@ -3879,6 +3879,39 @@ free_enc2cp(void)
15
+ st_free_table(enc2cp_table);
16
+ }
17
+
18
+ +/*
19
+ + * WIN32OLE.connect_unknown( pUnknown ) --> aWIN32OLE
20
+ + * ----
21
+ + * Returns running OLE Automation object or WIN32OLE object from an IUnknown pointer
22
+ + * the IUnknown pointer is passed in as a FIXNUM
23
+ + */
24
+ +static VALUE
25
+ +fole_s_connect_unknown(VALUE self, VALUE iUnknown)
26
+ +{
27
+ + HRESULT hr;
28
+ + IDispatch *pDispatch;
29
+ + IUnknown *pUnknown;
30
+ +
31
+ + /* initialize to use OLE */
32
+ + ole_initialize();
33
+ +
34
+ + //cast from int to IUnknown*
35
+ + pUnknown = (IUnknown*)FIX2INT(iUnknown);
36
+ +
37
+ + hr = pUnknown->lpVtbl->QueryInterface(pUnknown, &IID_IDispatch,
38
+ + (void **)&pDispatch);
39
+ + if(FAILED(hr)) {
40
+ + OLE_RELEASE(pUnknown);
41
+ + ole_raise(hr, eWIN32OLERuntimeError,
42
+ + "Failed to connect to WIN32OLE server `%d'",
43
+ + FIX2INT(iUnknown));
44
+ + }
45
+ +
46
+ + OLE_RELEASE(pUnknown);
47
+ +
48
+ + return create_win32ole_object(self, pDispatch, 0,0);
49
+ +}
50
+ +
51
+ static void
52
+ com_hash_free(void *ptr)
53
+ {
54
+ @@ -3931,6 +3964,7 @@ Init_win32ole(void)
55
+ rb_define_method(cWIN32OLE, "initialize", fole_initialize, -1);
56
+
57
+ rb_define_singleton_method(cWIN32OLE, "connect", fole_s_connect, -1);
58
+ + rb_define_singleton_method(cWIN32OLE, "connect_unknown", fole_s_connect_unknown, 1);
59
+ rb_define_singleton_method(cWIN32OLE, "const_load", fole_s_const_load, -1);
60
+
61
+ rb_define_singleton_method(cWIN32OLE, "ole_free", fole_s_free, 1);
62
+ --
63
+ 1.9.5.github.0
64
+
@@ -29,7 +29,7 @@ Gem::Specification.new do |s|
29
29
  s.add_dependency 'ffi', '~>1.0'
30
30
  s.add_dependency 'rautomation', '~>0.7'
31
31
  s.add_dependency 'multi_json'
32
- s.add_dependency 'win32screenshot', "~> 2.0.0"
32
+ s.add_dependency 'win32screenshot', "~> 2.1.0"
33
33
 
34
34
  s.add_development_dependency("rspec", "~>2.3")
35
35
  s.add_development_dependency("syntax")
metadata CHANGED
@@ -1,60 +1,68 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watir-classic
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0
4
+ version: 4.3.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Bret Pettichord
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-06-28 00:00:00.000000000 Z
12
+ date: 2016-04-21 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: win32-process
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.5.5
20
22
  type: :runtime
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.5.5
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: windows-pr
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.6.6
34
38
  type: :runtime
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.6.6
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: nokogiri
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.5.7.rc3
48
54
  type: :runtime
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.5.7.rc3
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: ffi
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
67
  - - ~>
60
68
  - !ruby/object:Gem::Version
@@ -62,6 +70,7 @@ dependencies:
62
70
  type: :runtime
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
@@ -69,6 +78,7 @@ dependencies:
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: rautomation
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
83
  - - ~>
74
84
  - !ruby/object:Gem::Version
@@ -76,6 +86,7 @@ dependencies:
76
86
  type: :runtime
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
@@ -83,34 +94,39 @@ dependencies:
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: multi_json
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: :runtime
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: win32screenshot
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
115
  - - ~>
102
116
  - !ruby/object:Gem::Version
103
- version: 2.0.0
117
+ version: 2.1.0
104
118
  type: :runtime
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
- version: 2.0.0
125
+ version: 2.1.0
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: rspec
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
131
  - - ~>
116
132
  - !ruby/object:Gem::Version
@@ -118,6 +134,7 @@ dependencies:
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
@@ -125,83 +142,91 @@ dependencies:
125
142
  - !ruby/object:Gem::Dependency
126
143
  name: syntax
127
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
128
146
  requirements:
129
- - - '>='
147
+ - - ! '>='
130
148
  - !ruby/object:Gem::Version
131
149
  version: '0'
132
150
  type: :development
133
151
  prerelease: false
134
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
135
154
  requirements:
136
- - - '>='
155
+ - - ! '>='
137
156
  - !ruby/object:Gem::Version
138
157
  version: '0'
139
158
  - !ruby/object:Gem::Dependency
140
159
  name: yard
141
160
  requirement: !ruby/object:Gem::Requirement
161
+ none: false
142
162
  requirements:
143
- - - '>='
163
+ - - ! '>='
144
164
  - !ruby/object:Gem::Version
145
165
  version: '0'
146
166
  type: :development
147
167
  prerelease: false
148
168
  version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
149
170
  requirements:
150
- - - '>='
171
+ - - ! '>='
151
172
  - !ruby/object:Gem::Version
152
173
  version: '0'
153
174
  - !ruby/object:Gem::Dependency
154
175
  name: sinatra
155
176
  requirement: !ruby/object:Gem::Requirement
177
+ none: false
156
178
  requirements:
157
- - - '>='
179
+ - - ! '>='
158
180
  - !ruby/object:Gem::Version
159
181
  version: '0'
160
182
  type: :development
161
183
  prerelease: false
162
184
  version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
163
186
  requirements:
164
- - - '>='
187
+ - - ! '>='
165
188
  - !ruby/object:Gem::Version
166
189
  version: '0'
167
190
  - !ruby/object:Gem::Dependency
168
191
  name: childprocess
169
192
  requirement: !ruby/object:Gem::Requirement
193
+ none: false
170
194
  requirements:
171
- - - '>='
195
+ - - ! '>='
172
196
  - !ruby/object:Gem::Version
173
197
  version: '0'
174
198
  type: :development
175
199
  prerelease: false
176
200
  version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
177
202
  requirements:
178
- - - '>='
203
+ - - ! '>='
179
204
  - !ruby/object:Gem::Version
180
205
  version: '0'
181
206
  - !ruby/object:Gem::Dependency
182
207
  name: rake
183
208
  requirement: !ruby/object:Gem::Requirement
209
+ none: false
184
210
  requirements:
185
- - - '>='
211
+ - - ! '>='
186
212
  - !ruby/object:Gem::Version
187
213
  version: '0'
188
214
  type: :development
189
215
  prerelease: false
190
216
  version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
191
218
  requirements:
192
- - - '>='
219
+ - - ! '>='
193
220
  - !ruby/object:Gem::Version
194
221
  version: '0'
195
- description: |2
196
- WATIR is "Web Application Testing in Ruby". Watir (pronounced water) is a free,
197
- open-source functional testing tool for automating browser-based tests of web applications.
198
- It works with applications written in any language.
199
- Watir drives the Internet Explorer browser the same way an end user would.
200
- It clicks links, fills in forms, presses buttons.
201
- Watir also checks results, such as whether expected text appears on the
202
- page, or whether a control is enabled.
203
- Watir can test web applications written in any language.
204
- Watir is a Ruby library that works with Internet Explorer on Windows.
222
+ description: ! " WATIR is \"Web Application Testing in Ruby\". Watir (pronounced
223
+ water) is a free,\n open-source functional testing tool for automating browser-based
224
+ tests of web applications.\n It works with applications written in any language.\n
225
+ \ Watir drives the Internet Explorer browser the same way an end user would.\n
226
+ \ It clicks links, fills in forms, presses buttons.\n Watir also checks results,
227
+ such as whether expected text appears on the\n page, or whether a control is
228
+ enabled.\n Watir can test web applications written in any language.\n Watir
229
+ is a Ruby library that works with Internet Explorer on Windows.\n"
205
230
  email: watir-general@groups.google.com
206
231
  executables: []
207
232
  extensions: []
@@ -266,6 +291,10 @@ files:
266
291
  - lib/watir-classic/win32ole/1.9.3/win32ole.so
267
292
  - lib/watir-classic/win32ole/2.0.0/win32ole.patch
268
293
  - lib/watir-classic/win32ole/2.0.0/win32ole.so
294
+ - lib/watir-classic/win32ole/2.1.0/win32ole.patch
295
+ - lib/watir-classic/win32ole/2.1.0/win32ole.so
296
+ - lib/watir-classic/win32ole/2.2.0/win32ole.patch
297
+ - lib/watir-classic/win32ole/2.2.0/win32ole.so
269
298
  - lib/watir-classic/win32ole/build_notes.txt
270
299
  - lib/watir-classic/win32ole/history.txt
271
300
  - lib/watir-classic/window.rb
@@ -281,27 +310,28 @@ files:
281
310
  - watir-classic.gemspec
282
311
  homepage: http://watir.com/
283
312
  licenses: []
284
- metadata: {}
285
313
  post_install_message:
286
314
  rdoc_options: []
287
315
  require_paths:
288
316
  - lib
289
317
  required_ruby_version: !ruby/object:Gem::Requirement
318
+ none: false
290
319
  requirements:
291
- - - '>='
320
+ - - ! '>='
292
321
  - !ruby/object:Gem::Version
293
322
  version: '0'
294
323
  required_rubygems_version: !ruby/object:Gem::Requirement
324
+ none: false
295
325
  requirements:
296
- - - '>='
326
+ - - ! '>='
297
327
  - !ruby/object:Gem::Version
298
328
  version: '0'
299
329
  requirements:
300
330
  - Microsoft Windows running Internet Explorer 5.5 or later.
301
331
  rubyforge_project:
302
- rubygems_version: 2.0.7
332
+ rubygems_version: 1.8.29
303
333
  signing_key:
304
- specification_version: 4
334
+ specification_version: 3
305
335
  summary: Automated testing tool for web applications.
306
336
  test_files:
307
337
  - spec/browser_spec.rb
@@ -311,4 +341,3 @@ test_files:
311
341
  - spec/implementation.rb
312
342
  - spec/link_spec.rb
313
343
  - spec/select_list_spec.rb
314
- has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: d515d68ee3ed07f5ae44f7be7d6409fa79cf8256
4
- data.tar.gz: a70a618ce992d5cd37fe571fe1c62f0bfc17cae2
5
- SHA512:
6
- metadata.gz: 0bcad52aef6aef6a0d3c8f0d71e477a78cef7544adbb1103ee951e13771d32d7c9b871e7702605eb8d8fc6f08a93c220d9bbee9010e4485708578b53f2a1940c
7
- data.tar.gz: 9d1a9d982b922c4df51a0e456cc839fa269a9da9a8953cc8c3848da14d244482f4d7917f145881dadc293a209037ad5927a1480e31b12bbcbe0f6df4d22f9d97