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.
@@ -275,7 +275,7 @@ module Celerity
275
275
 
276
276
  def wait
277
277
  assert_exists
278
- @page.getEnclosingWindow.getJobManager.waitForJobs(10000)
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
- @listener ||= Celerity::Listener.new(@webclient)
489
- @listener.add_listener(type, &block)
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
- java.util.logging.Logger.getLogger('com.gargoylesoftware.htmlunit').level.to_s.downcase.to_sym
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
- java.util.logging.Logger.getLogger('com.gargoylesoftware.htmlunit').level = java.util.logging.Level.const_get(level.to_s.upcase)
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) || :internet_explorer).to_sym
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
@@ -126,14 +126,8 @@ module Celerity
126
126
  #
127
127
 
128
128
  def visible?
129
- obj = self
130
- while obj
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
  #
@@ -11,6 +11,8 @@ module Celerity
11
11
  #
12
12
  # Submits the form.
13
13
  #
14
+ # This method should be avoided - invoke the user interface element that triggers the submit instead.
15
+ #
14
16
 
15
17
  def submit
16
18
  assert_exists
@@ -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, @container.page.getPageEncoding).toCharArray.each do |char|
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
@@ -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
-
@@ -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].each { |h| h.call(page, message) }
89
- true # TODO: let user specify this somehow
93
+ val = @procs[:confirm].map { |h| h.call(page, message) }.last
94
+ val.nil? || !!val
90
95
  end
91
96
 
92
97
  #
@@ -3,7 +3,7 @@ module Celerity #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
5
  TINY = 6
6
- PATCH = 2 # Set to nil for official release
6
+ PATCH = 3 # Set to nil for official release
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, PATCH].compact.join('.')
9
9
  end
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.2
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-03-31 00:00:00 -07:00
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.11.0
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