jarib-celerity 0.0.6.2 → 0.0.6.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/celerity/browser.rb +40 -9
- data/lib/celerity/element.rb +2 -8
- data/lib/celerity/elements/form.rb +2 -0
- data/lib/celerity/elements/text_field.rb +6 -1
- data/lib/celerity/htmlunit/htmlunit-2.5-SNAPSHOT.jar +0 -0
- data/lib/celerity/htmlunit.rb +1 -6
- data/lib/celerity/listener.rb +7 -2
- data/lib/celerity/version.rb +1 -1
- metadata +3 -3
data/lib/celerity/browser.rb
CHANGED
@@ -275,7 +275,7 @@ module Celerity
|
|
275
275
|
|
276
276
|
def wait
|
277
277
|
assert_exists
|
278
|
-
@
|
278
|
+
@webclient.waitForBackgroundJavaScript(10000);
|
279
279
|
end
|
280
280
|
|
281
281
|
#
|
@@ -485,8 +485,25 @@ module Celerity
|
|
485
485
|
#
|
486
486
|
|
487
487
|
def add_listener(type, &block)
|
488
|
-
|
489
|
-
|
488
|
+
listener.add_listener(type, &block)
|
489
|
+
end
|
490
|
+
|
491
|
+
#
|
492
|
+
# Specify a boolean value to click either 'OK' or 'Cancel' in any confirm
|
493
|
+
# dialogs that might show up during the duration of the given block.
|
494
|
+
#
|
495
|
+
# (Celerity only)
|
496
|
+
#
|
497
|
+
# @param [Boolean] bool true to click 'OK', false to click 'cancel'
|
498
|
+
# @param [Proc] block A block that will trigger the confirm() call(s).
|
499
|
+
#
|
500
|
+
|
501
|
+
def confirm(bool, &block)
|
502
|
+
blk = lambda { bool }
|
503
|
+
|
504
|
+
listener.add_listener(:confirm, &blk)
|
505
|
+
yield
|
506
|
+
listener.remove_listener(:confirm, blk)
|
490
507
|
end
|
491
508
|
|
492
509
|
#
|
@@ -523,7 +540,7 @@ module Celerity
|
|
523
540
|
#
|
524
541
|
|
525
542
|
def log_level
|
526
|
-
|
543
|
+
logger_for('com.gargoylesoftware.htmlunit').level.to_s.downcase.to_sym
|
527
544
|
end
|
528
545
|
|
529
546
|
#
|
@@ -533,7 +550,15 @@ module Celerity
|
|
533
550
|
#
|
534
551
|
|
535
552
|
def log_level=(level)
|
536
|
-
|
553
|
+
log_level = java.util.logging.Level.const_get(level.to_s.upcase)
|
554
|
+
|
555
|
+
# loggers = [
|
556
|
+
# logger_for('com.gargoylesoftware.htmlunit'),
|
557
|
+
# logger_for("com.gargoylesoftware.htmlunit.html.HtmlElement")
|
558
|
+
# ]
|
559
|
+
# loggers.each { |logger| logger.level = log_level }
|
560
|
+
|
561
|
+
logger_for('com.gargoylesoftware.htmlunit').level = log_level
|
537
562
|
end
|
538
563
|
|
539
564
|
#
|
@@ -574,8 +599,6 @@ module Celerity
|
|
574
599
|
@webclient.throwExceptionOnFailingStatusCode
|
575
600
|
end
|
576
601
|
|
577
|
-
|
578
|
-
|
579
602
|
#
|
580
603
|
# Sets the current page object for the browser
|
581
604
|
#
|
@@ -637,10 +660,10 @@ module Celerity
|
|
637
660
|
#
|
638
661
|
|
639
662
|
def setup_webclient(opts)
|
640
|
-
browser = (opts.delete(:browser) || :
|
663
|
+
browser = (opts.delete(:browser) || :firefox).to_sym
|
641
664
|
|
642
665
|
case browser
|
643
|
-
when :firefox
|
666
|
+
when :firefox, :ff
|
644
667
|
browser_version = ::HtmlUnit::BrowserVersion::FIREFOX_2
|
645
668
|
when :internet_explorer, :ie
|
646
669
|
browser_version = ::HtmlUnit::BrowserVersion::INTERNET_EXPLORER_7_0
|
@@ -717,5 +740,13 @@ module Celerity
|
|
717
740
|
end
|
718
741
|
end
|
719
742
|
|
743
|
+
def logger_for(class_string)
|
744
|
+
java.util.logging.Logger.getLogger(class_string)
|
745
|
+
end
|
746
|
+
|
747
|
+
def listener
|
748
|
+
@listener ||= Celerity::Listener.new(@webclient)
|
749
|
+
end
|
750
|
+
|
720
751
|
end # Browser
|
721
752
|
end # Celerity
|
data/lib/celerity/element.rb
CHANGED
@@ -126,14 +126,8 @@ module Celerity
|
|
126
126
|
#
|
127
127
|
|
128
128
|
def visible?
|
129
|
-
|
130
|
-
|
131
|
-
return false if obj.respond_to?(:type) && obj.type == 'hidden'
|
132
|
-
return false if obj.style =~ /display\s*:\s*none|visibility\s*:\s*hidden/
|
133
|
-
obj = obj.parent
|
134
|
-
end
|
135
|
-
|
136
|
-
return true
|
129
|
+
assert_exists
|
130
|
+
@object.isVisible
|
137
131
|
end
|
138
132
|
|
139
133
|
#
|
@@ -13,6 +13,10 @@ module Celerity
|
|
13
13
|
Identifier.new('input', :type => ["text", "password", /^(?!(#{ Regexp.union(*NON_TEXT_TYPES) })$)/]) ]
|
14
14
|
DEFAULT_HOW = :name
|
15
15
|
|
16
|
+
def visible?
|
17
|
+
type == 'hidden' ? false : super
|
18
|
+
end
|
19
|
+
|
16
20
|
#
|
17
21
|
# Clear the text field.
|
18
22
|
#
|
@@ -129,7 +133,7 @@ module Celerity
|
|
129
133
|
private
|
130
134
|
|
131
135
|
def type_string(value)
|
132
|
-
java.lang.String.new(value.to_java_bytes, @
|
136
|
+
java.lang.String.new(value.to_java_bytes, @browser.page.getPageEncoding).toCharArray.each do |char|
|
133
137
|
@container.update_page @object.type(char)
|
134
138
|
end
|
135
139
|
end
|
@@ -157,6 +161,7 @@ module Celerity
|
|
157
161
|
DEFAULT_HOW = :name
|
158
162
|
|
159
163
|
def visible?
|
164
|
+
assert_exists
|
160
165
|
false
|
161
166
|
end
|
162
167
|
end
|
Binary file
|
data/lib/celerity/htmlunit.rb
CHANGED
@@ -5,8 +5,6 @@ module Celerity
|
|
5
5
|
include_class org.apache.commons.httpclient.Cookie
|
6
6
|
end
|
7
7
|
|
8
|
-
|
9
|
-
|
10
8
|
module HtmlUnit
|
11
9
|
include_package 'com.gargoylesoftware.htmlunit'
|
12
10
|
|
@@ -17,7 +15,6 @@ module HtmlUnit
|
|
17
15
|
module Util
|
18
16
|
include_package 'com.gargoylesoftware.htmlunit.util'
|
19
17
|
end
|
20
|
-
|
21
18
|
end
|
22
19
|
|
23
20
|
module Java::OrgW3cDom::NamedNodeMap
|
@@ -38,12 +35,10 @@ module Java::JavaLang::Iterable
|
|
38
35
|
yield it.next while it.hasNext
|
39
36
|
end
|
40
37
|
|
41
|
-
end
|
42
|
-
|
38
|
+
end unless Java::JavaLang::Iterable < Enumerable # depends on JRuby version
|
43
39
|
|
44
40
|
class Java::ComGargoylesoftwareHtmlunitHtml::HtmlPage
|
45
41
|
def inspect
|
46
42
|
'#<HtmlPage:0x%s(%s)>' % [self.hash.to_s(16), getWebResponse.getUrl.toString]
|
47
43
|
end
|
48
44
|
end
|
49
|
-
|
data/lib/celerity/listener.rb
CHANGED
@@ -83,10 +83,15 @@ module Celerity
|
|
83
83
|
#
|
84
84
|
# interface ConfirmHandler
|
85
85
|
#
|
86
|
+
# The returned value is determined by the last registered :confirm listener proc.
|
87
|
+
# If it is nil, return true, otherwise return that value as a boolean.
|
88
|
+
#
|
89
|
+
# @see Browser#confirm
|
90
|
+
#
|
86
91
|
|
87
92
|
def handleConfirm(page, message)
|
88
|
-
@procs[:confirm].
|
89
|
-
|
93
|
+
val = @procs[:confirm].map { |h| h.call(page, message) }.last
|
94
|
+
val.nil? || !!val
|
90
95
|
end
|
91
96
|
|
92
97
|
#
|
data/lib/celerity/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jarib-celerity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.6.
|
4
|
+
version: 0.0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jari Bakken
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2009-
|
14
|
+
date: 2009-04-05 00:00:00 -07:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
@@ -22,7 +22,7 @@ dependencies:
|
|
22
22
|
requirements:
|
23
23
|
- - ">="
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: 1.
|
25
|
+
version: 1.12.1
|
26
26
|
version:
|
27
27
|
description: "Celerity is a JRuby wrapper around HtmlUnit \xE2\x80\x93 a headless Java browser with JavaScript support. It provides a simple API for programmatic navigation through web applications. Celerity aims at being API compatible with Watir."
|
28
28
|
email: jari.bakken@finn.no
|