watir-classic 4.2.0 → 4.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/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