jarib-celerity 0.0.6.8 → 0.0.6.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -26,10 +26,6 @@ module Celerity
26
26
  raise NotImplementedError, "use ClickableElement#click_and_attach instead"
27
27
  end
28
28
 
29
- def inspect
30
- short_inspect :exclude => %w[@webclient @browser @object @options]
31
- end
32
-
33
29
  #
34
30
  # Creates a browser object.
35
31
  #
@@ -77,6 +73,10 @@ module Celerity
77
73
  find_viewer
78
74
  end
79
75
 
76
+ def inspect
77
+ short_inspect :exclude => %w[@webclient @browser @object @options]
78
+ end
79
+
80
80
  #
81
81
  # Goto the given URL
82
82
  #
@@ -139,6 +139,14 @@ module Celerity
139
139
  @page ? @page.getTitleText : ''
140
140
  end
141
141
 
142
+ #
143
+ # @return [String] the value of window.status
144
+ #
145
+
146
+ def status
147
+ execute_script "window.status" # avoid the listener overhead
148
+ end
149
+
142
150
  #
143
151
  # @return [String] the HTML content of the current page
144
152
  #
@@ -491,9 +499,9 @@ module Celerity
491
499
  # :incorrectness => IncorrectnessListener
492
500
  # :confirm => ConfirmHandler ( window.confirm() )
493
501
  # :prompt => PromptHandler ( window.prompt() )
494
- #
502
+ #
495
503
  # Examples:
496
- #
504
+ #
497
505
  # browser.add_listener(:status) { |page, message| ... }
498
506
  # browser.add_listener(:alert) { |page, message| ... }
499
507
  # browser.add_listener(:web_window_event) { |web_window_event| ... }
@@ -563,7 +571,7 @@ module Celerity
563
571
  #
564
572
 
565
573
  def log_level
566
- logger_for('com.gargoylesoftware.htmlunit').level.to_s.downcase.to_sym
574
+ Celerity::Util.logger_for('com.gargoylesoftware.htmlunit').level.to_s.downcase.to_sym
567
575
  end
568
576
 
569
577
  #
@@ -577,8 +585,9 @@ module Celerity
577
585
 
578
586
  [ 'com.gargoylesoftware.htmlunit',
579
587
  'com.gargoylesoftware.htmlunit.html',
588
+ 'com.gargoylesoftware.htmlunit.javascript',
580
589
  'org.apache.commons.httpclient'
581
- ].each { |package| logger_for(package).level = log_level }
590
+ ].each { |package| Celerity::Util.logger_for(package).level = log_level }
582
591
 
583
592
  level
584
593
  end
@@ -774,7 +783,7 @@ module Celerity
774
783
  def find_viewer
775
784
  # needed to avoid DRb raising and rescuing lots exceptions
776
785
  DRb.start_service unless DRb.primary_server
777
-
786
+
778
787
  viewer = DRbObject.new_with_uri("druby://127.0.0.1:6429")
779
788
  if viewer.respond_to?(:render_html)
780
789
  @viewer = viewer
@@ -794,10 +803,6 @@ module Celerity
794
803
  element_class.new(self, :object, obj)
795
804
  end
796
805
 
797
- def logger_for(class_string)
798
- java.util.logging.Logger.getLogger(class_string)
799
- end
800
-
801
806
  def listener
802
807
  @listener ||= Celerity::Listener.new(@webclient)
803
808
  end
@@ -49,6 +49,7 @@ module Celerity
49
49
 
50
50
  #
51
51
  # Click the element and just return the content as IO. Current page stays unchanged.
52
+ # This can be used to download content that normally isn't rendered in a browser.
52
53
  #
53
54
  # @return [IO]
54
55
  #
@@ -61,7 +61,7 @@ module Celerity
61
61
  #
62
62
 
63
63
  def inspect
64
- short_inspect :exclude => %w[@browser @container]
64
+ short_inspect :include => %w[@conditions @object]
65
65
  end
66
66
 
67
67
  #
@@ -97,15 +97,26 @@ module Celerity
97
97
  def locate
98
98
  @object = ElementLocator.new(@container, self.class).find_by_conditions(@conditions)
99
99
  end
100
-
101
- #
100
+
101
+ #
102
102
  # Returns the HtmlUnit object backing this element
103
- #
103
+ #
104
104
 
105
105
  def object
106
106
  @object || locate
107
107
  end
108
108
 
109
+ #
110
+ # Returns a JavaScript object representing the receiver
111
+ #
112
+ # @api internal - subject to change
113
+ #
114
+
115
+ def javascript_object
116
+ assert_exists
117
+ @object.getScriptObject
118
+ end
119
+
109
120
  #
110
121
  # @return [String] A string representation of the element.
111
122
  #
@@ -146,7 +157,7 @@ module Celerity
146
157
  #
147
158
 
148
159
  def assert_exists
149
- locate
160
+ locate unless @object
150
161
  unless @object
151
162
  raise UnknownObjectException, "Unable to locate #{self.class.name[/::(.*)$/, 1]}, using #{identifier_string}"
152
163
  end
@@ -37,6 +37,8 @@ module Celerity
37
37
  assert_not_readonly
38
38
  clear
39
39
  type_string(value.to_s)
40
+
41
+ value
40
42
  end
41
43
 
42
44
  #
@@ -76,7 +78,7 @@ module Celerity
76
78
  def append(value)
77
79
  assert_enabled
78
80
  assert_not_readonly
79
- type_string(value)
81
+ type_string value
80
82
  end
81
83
 
82
84
 
@@ -48,3 +48,14 @@ class Java::ComGargoylesoftwareHtmlunitHtml::HtmlElement
48
48
  '#<%s:0x%s>' % [self.class.name.split("::").last, self.hash.to_s(16)]
49
49
  end
50
50
  end
51
+
52
+ class Java::ComGargoylesoftwareHtmlunitJavascriptHostHtml::HTMLElement
53
+ def method_missing(meth, *args, &blk)
54
+ m = ["jsxGet_#{meth}", "jsx_get_#{meth}"].find { |m| respond_to?(m) }
55
+ if m
56
+ __send__ m
57
+ else
58
+ super
59
+ end
60
+ end
61
+ end
data/lib/celerity/util.rb CHANGED
@@ -83,5 +83,9 @@ module Celerity
83
83
  strip
84
84
  end
85
85
 
86
+ def logger_for(package_string)
87
+ java.util.logging.Logger.getLogger(package_string)
88
+ end
89
+
86
90
  end
87
91
  end
@@ -3,7 +3,7 @@ module Celerity #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
5
  TINY = 6
6
- PATCH = 8 # Set to nil for official release
6
+ PATCH = 9 # Set to nil for official release
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, PATCH].compact.join('.')
9
9
  end
@@ -25,8 +25,6 @@ module Celerity
25
25
  def bring_to_front; true; end
26
26
  # Added for Watir compatibility - not in use by Celerity
27
27
  def speed=(s); s end
28
- # Added for Watir compatibility - not in use by Celerity
29
- def status; '' end
30
28
  end
31
29
 
32
30
 
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.8
4
+ version: 0.0.6.9
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-06-04 00:00:00 -07:00
14
+ date: 2009-06-13 00:00:00 -07:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency