jarib-celerity 0.0.6.2 → 0.0.6.3

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.
@@ -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