oki-celerity 0.8.1.dev

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. data/HISTORY +111 -0
  2. data/LICENSE +621 -0
  3. data/README.rdoc +80 -0
  4. data/Rakefile +11 -0
  5. data/VERSION.yml +5 -0
  6. data/celerity.gemspec +126 -0
  7. data/lib/celerity/browser.rb +908 -0
  8. data/lib/celerity/clickable_element.rb +73 -0
  9. data/lib/celerity/collections.rb +164 -0
  10. data/lib/celerity/container.rb +800 -0
  11. data/lib/celerity/default_viewer.rb +14 -0
  12. data/lib/celerity/disabled_element.rb +40 -0
  13. data/lib/celerity/element.rb +311 -0
  14. data/lib/celerity/element_collection.rb +107 -0
  15. data/lib/celerity/element_locator.rb +164 -0
  16. data/lib/celerity/elements/button.rb +54 -0
  17. data/lib/celerity/elements/file_field.rb +29 -0
  18. data/lib/celerity/elements/form.rb +22 -0
  19. data/lib/celerity/elements/frame.rb +86 -0
  20. data/lib/celerity/elements/image.rb +89 -0
  21. data/lib/celerity/elements/label.rb +16 -0
  22. data/lib/celerity/elements/link.rb +43 -0
  23. data/lib/celerity/elements/meta.rb +14 -0
  24. data/lib/celerity/elements/non_control_elements.rb +124 -0
  25. data/lib/celerity/elements/option.rb +38 -0
  26. data/lib/celerity/elements/radio_check.rb +114 -0
  27. data/lib/celerity/elements/select_list.rb +146 -0
  28. data/lib/celerity/elements/table.rb +153 -0
  29. data/lib/celerity/elements/table_cell.rb +36 -0
  30. data/lib/celerity/elements/table_elements.rb +42 -0
  31. data/lib/celerity/elements/table_row.rb +49 -0
  32. data/lib/celerity/elements/text_field.rb +168 -0
  33. data/lib/celerity/exception.rb +83 -0
  34. data/lib/celerity/htmlunit/apache-mime4j-0.6.jar +0 -0
  35. data/lib/celerity/htmlunit/commons-codec-1.4.jar +0 -0
  36. data/lib/celerity/htmlunit/commons-collections-3.2.1.jar +0 -0
  37. data/lib/celerity/htmlunit/commons-io-1.4.jar +0 -0
  38. data/lib/celerity/htmlunit/commons-lang-2.5.jar +0 -0
  39. data/lib/celerity/htmlunit/commons-logging-1.1.1.jar +0 -0
  40. data/lib/celerity/htmlunit/cssparser-0.9.5.jar +0 -0
  41. data/lib/celerity/htmlunit/htmlunit-2.9-SNAPSHOT.jar +0 -0
  42. data/lib/celerity/htmlunit/htmlunit-core-js-2.8.jar +0 -0
  43. data/lib/celerity/htmlunit/httpclient-4.0.1.jar +0 -0
  44. data/lib/celerity/htmlunit/httpcore-4.0.1.jar +0 -0
  45. data/lib/celerity/htmlunit/httpmime-4.0.1.jar +0 -0
  46. data/lib/celerity/htmlunit/nekohtml-1.9.14.jar +0 -0
  47. data/lib/celerity/htmlunit/sac-1.3.jar +0 -0
  48. data/lib/celerity/htmlunit/serializer-2.7.1.jar +0 -0
  49. data/lib/celerity/htmlunit/xalan-2.7.1.jar +0 -0
  50. data/lib/celerity/htmlunit/xercesImpl-2.9.1.jar +0 -0
  51. data/lib/celerity/htmlunit/xml-apis-1.3.04.jar +0 -0
  52. data/lib/celerity/htmlunit.rb +64 -0
  53. data/lib/celerity/identifier.rb +28 -0
  54. data/lib/celerity/ignoring_web_connection.rb +15 -0
  55. data/lib/celerity/input_element.rb +25 -0
  56. data/lib/celerity/javascript_debugger.rb +32 -0
  57. data/lib/celerity/listener.rb +143 -0
  58. data/lib/celerity/resources/no_viewer.png +0 -0
  59. data/lib/celerity/short_inspect.rb +20 -0
  60. data/lib/celerity/util.rb +129 -0
  61. data/lib/celerity/version.rb +3 -0
  62. data/lib/celerity/viewer_connection.rb +89 -0
  63. data/lib/celerity/watir_compatibility.rb +70 -0
  64. data/lib/celerity/xpath_support.rb +52 -0
  65. data/lib/celerity.rb +77 -0
  66. data/tasks/benchmark.rake +4 -0
  67. data/tasks/check.rake +24 -0
  68. data/tasks/clean.rake +3 -0
  69. data/tasks/fix.rake +25 -0
  70. data/tasks/jar.rake +55 -0
  71. data/tasks/jeweler.rake +28 -0
  72. data/tasks/rdoc.rake +4 -0
  73. data/tasks/snapshot.rake +25 -0
  74. data/tasks/spec.rake +26 -0
  75. data/tasks/website.rake +10 -0
  76. data/tasks/yard.rake +16 -0
  77. metadata +204 -0
data/tasks/fix.rake ADDED
@@ -0,0 +1,25 @@
1
+ namespace :fix do
2
+
3
+ desc 'Make all ruby files use LF line endings'
4
+ task :crlf do
5
+ files = FileList['**/*.rb']
6
+ files.each do |f|
7
+ next if File.directory?(f)
8
+ s = IO.read(f)
9
+ s.gsub!(/\r?\n/, "\n")
10
+ File.open(f, "w") { |io| io.write(s) }
11
+ end
12
+ end
13
+
14
+ desc 'Remove trailing whitespace from all ruby files'
15
+ task :trailing_whitespace do
16
+ files = FileList['**/*.rb']
17
+ files.each do |f|
18
+ next if File.directory?(f)
19
+ s = IO.read(f)
20
+ s.gsub!(/\s*?($)/, '\1')
21
+ File.open(f, "w") { |io| io.write(s) }
22
+ end
23
+ end
24
+
25
+ end
data/tasks/jar.rake ADDED
@@ -0,0 +1,55 @@
1
+ namespace :jar do
2
+ target_dir = "classes"
3
+
4
+ desc "Compile and create celerity-complete-#{Celerity::VERSION}.jar (includes HtmlUnit)"
5
+ task :fat do
6
+ file_name = "pkg/celerity-complete-#{Celerity::VERSION}.jar"
7
+
8
+ ruby_files = Dir['lib/**/*.rb']
9
+ jar_files = Dir['lib/**/*.jar']
10
+ resources = Dir['lib/celerity/resources/*']
11
+
12
+ rm_rf target_dir if File.exist? target_dir
13
+ mkdir target_dir
14
+ mkdir_p resource_dir = "#{target_dir}/celerity/resources"
15
+
16
+ sh "jrubyc", "-d", "lib", "-t", target_dir, *ruby_files
17
+ resources.each { |extra| cp extra, resource_dir }
18
+
19
+ jar_files.each do |f|
20
+ cp f, target_dir
21
+ end
22
+
23
+ top_dir = Dir.pwd
24
+ chdir target_dir, :verbose => true
25
+ Dir['*.jar'].each do |file|
26
+ sh "jar", "xf", file
27
+ rm_f file
28
+ end
29
+ chdir top_dir, :verbose => true
30
+
31
+ mkdir_p "pkg"
32
+ sh "jar", "cvf", file_name, '-C', target_dir, '.'
33
+ end
34
+
35
+ desc "Compile and create celerity-#{Celerity::VERSION}.jar"
36
+ task :tiny do
37
+ file_name = "pkg/celerity-#{Celerity::VERSION}.jar"
38
+
39
+ ruby_files = Dir['lib/**/*.rb']
40
+ resources = Dir['lib/celerity/resources/*']
41
+
42
+ rm_rf target_dir if File.exist? target_dir
43
+ mkdir target_dir
44
+ mkdir_p resource_dir = "#{target_dir}/celerity/resources"
45
+
46
+ sh "jrubyc", "-d", "lib", "-t", target_dir, *ruby_files
47
+ resources.each { |extra| cp extra, resource_dir }
48
+
49
+ mkdir_p "pkg"
50
+ sh "jar", "cvf", file_name, '-C', target_dir, '.'
51
+ end
52
+ end
53
+
54
+ desc 'Alias for jar:tiny'
55
+ task :jar => %w[jar:tiny]
@@ -0,0 +1,28 @@
1
+ # encoding: utf-8
2
+
3
+ begin
4
+ require 'jeweler'
5
+ Jeweler::Tasks.new do |gem|
6
+ # see http://www.rubygems.org/read/chapter/20 for additional settings
7
+ gem.name = "celerity"
8
+ gem.summary = "Celerity is a JRuby library for easy and fast functional test automation for web applications."
9
+ gem.description = "Celerity is a JRuby wrapper around HtmlUnit – a headless Java browser with JavaScript support. It provides a simple API for programmatic navigation through web applications. Celerity provides a superset of Watir's API."
10
+ gem.email = "jari.bakken@gmail.com"
11
+ gem.homepage = "http://github.com/jarib/celerity"
12
+ gem.authors = ["Jari Bakken", "T. Alexander Lystad", "Knut Johannes Dahle"]
13
+ gem.rubyforge_project = "celerity"
14
+ gem.test_files = [] # the gem is big enough as it is
15
+
16
+ gem.files.reject! { |f| f =~ /^(website|doc|benchmark|log|spec|\.)/}
17
+
18
+ gem.add_development_dependency 'rspec'
19
+ gem.add_development_dependency 'yard'
20
+ gem.add_development_dependency 'sinatra', '>= 1.0'
21
+ gem.add_development_dependency 'mongrel'
22
+ end
23
+
24
+ Jeweler::GemcutterTasks.new
25
+ rescue LoadError
26
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
27
+ task :spec => :check_dependencies
28
+ end
data/tasks/rdoc.rake ADDED
@@ -0,0 +1,4 @@
1
+ desc 'Generate RDoc'
2
+ task :rdoc do
3
+ puts `rdoc --inline-source --line-numbers --title 'Celerity Documentation' --opname index.html --main README.txt lib History.txt License.txt README.txt`
4
+ end
@@ -0,0 +1,25 @@
1
+ desc 'Download and unpack the latest HtmlUnit assembly'
2
+ task :snapshot, :file do |t, args|
3
+ if args.file
4
+ sh "cp #{args.file} ./"
5
+ basename = File.basename(args.file)
6
+ else
7
+ url = "http://build.canoo.com/htmlunit/artifacts/htmlunit-2.9-SNAPSHOT-with-dependencies.zip"
8
+ sh "curl -O #{url}"
9
+ basename = File.basename(url)
10
+ end
11
+
12
+ shortname = basename[/(.+?)\.zip/, 1].sub("-with-dependencies", '')
13
+ sh "rm -rf lib/celerity/htmlunit/*.jar"
14
+ sh "unzip -tq #{basename}"
15
+ sh %Q{unzip -C #{basename} "#{shortname}/lib/*.jar" -d lib/celerity/htmlunit }
16
+
17
+ puts "Fixing paths..."
18
+ sh "cp -R lib/celerity/htmlunit/#{shortname}/lib/*.jar lib/celerity/htmlunit/"
19
+
20
+ puts "Cleaning..."
21
+ rm_r "lib/celerity/htmlunit/#{shortname}/"
22
+ rm basename
23
+
24
+ puts "...done!"
25
+ end
data/tasks/spec.rake ADDED
@@ -0,0 +1,26 @@
1
+ require 'spec/rake/spectask'
2
+ Spec::Rake::SpecTask.new(:spec) do |spec|
3
+ spec.libs << 'lib' << 'spec'
4
+ spec.pattern = 'spec/**/*_spec.rb'
5
+ end
6
+
7
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
8
+ spec.libs << 'lib' << 'spec'
9
+ spec.pattern = 'spec/**/*_spec.rb'
10
+ spec.rcov = true
11
+ spec.rcov_opts = %w[--exclude spec,fcntl,path_helper,yaml,rack,jruby --include lib/celerity --no-rcovrt]
12
+ end
13
+
14
+ if File.exist?(path = "spec/watirspec/watirspec.rake")
15
+ load path
16
+ end
17
+
18
+ namespace :watirspec do
19
+ desc 'Initialize and fetch the watirspec submodule'
20
+ task :init do
21
+ sh "git submodule init"
22
+ sh "git submodule update"
23
+ end
24
+ end
25
+
26
+ task :default => :spec
@@ -0,0 +1,10 @@
1
+ namespace :website do
2
+ desc 'Upload website files to rubyforge'
3
+ task :upload do
4
+ host = "jarib@rubyforge.org"
5
+ remote_dir = "/var/www/gforge-projects/celerity"
6
+ local_dir = 'website'
7
+
8
+ sh %{rsync -rlgoDCv #{local_dir}/ #{host}:#{remote_dir}}
9
+ end
10
+ end
data/tasks/yard.rake ADDED
@@ -0,0 +1,16 @@
1
+ begin
2
+ require 'yard'
3
+ YARD::Rake::YardocTask.new
4
+
5
+ desc 'Generate docs to website/yard'
6
+ namespace :yardoc do
7
+ YARD::Rake::YardocTask.new(:website) do |t|
8
+ t.options += ["-o", "website/yard"]
9
+ end
10
+ end
11
+
12
+ rescue LoadError
13
+ task :yardoc do
14
+ abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
15
+ end
16
+ end
metadata ADDED
@@ -0,0 +1,204 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: oki-celerity
3
+ version: !ruby/object:Gem::Version
4
+ hash: 858800376
5
+ prerelease: true
6
+ segments:
7
+ - 0
8
+ - 8
9
+ - 1
10
+ - dev
11
+ version: 0.8.1.dev
12
+ platform: ruby
13
+ authors:
14
+ - Jari Bakken
15
+ - T. Alexander Lystad
16
+ - Knut Johannes Dahle
17
+ autorequire:
18
+ bindir: bin
19
+ cert_chain: []
20
+
21
+ date: 2010-08-27 00:00:00 +02:00
22
+ default_executable:
23
+ dependencies:
24
+ - !ruby/object:Gem::Dependency
25
+ name: rspec
26
+ prerelease: false
27
+ requirement: &id001 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ hash: 3
33
+ segments:
34
+ - 0
35
+ version: "0"
36
+ type: :development
37
+ version_requirements: *id001
38
+ - !ruby/object:Gem::Dependency
39
+ name: yard
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ hash: 3
47
+ segments:
48
+ - 0
49
+ version: "0"
50
+ type: :development
51
+ version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: sinatra
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 15
61
+ segments:
62
+ - 1
63
+ - 0
64
+ version: "1.0"
65
+ type: :development
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: mongrel
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 3
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ type: :development
80
+ version_requirements: *id004
81
+ 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 provides a superset of Watir's API."
82
+ email: jari.bakken@gmail.com
83
+ executables: []
84
+
85
+ extensions: []
86
+
87
+ extra_rdoc_files:
88
+ - LICENSE
89
+ - README.rdoc
90
+ files:
91
+ - HISTORY
92
+ - LICENSE
93
+ - README.rdoc
94
+ - Rakefile
95
+ - VERSION.yml
96
+ - celerity.gemspec
97
+ - lib/celerity.rb
98
+ - lib/celerity/browser.rb
99
+ - lib/celerity/clickable_element.rb
100
+ - lib/celerity/collections.rb
101
+ - lib/celerity/container.rb
102
+ - lib/celerity/default_viewer.rb
103
+ - lib/celerity/disabled_element.rb
104
+ - lib/celerity/element.rb
105
+ - lib/celerity/element_collection.rb
106
+ - lib/celerity/element_locator.rb
107
+ - lib/celerity/elements/button.rb
108
+ - lib/celerity/elements/file_field.rb
109
+ - lib/celerity/elements/form.rb
110
+ - lib/celerity/elements/frame.rb
111
+ - lib/celerity/elements/image.rb
112
+ - lib/celerity/elements/label.rb
113
+ - lib/celerity/elements/link.rb
114
+ - lib/celerity/elements/meta.rb
115
+ - lib/celerity/elements/non_control_elements.rb
116
+ - lib/celerity/elements/option.rb
117
+ - lib/celerity/elements/radio_check.rb
118
+ - lib/celerity/elements/select_list.rb
119
+ - lib/celerity/elements/table.rb
120
+ - lib/celerity/elements/table_cell.rb
121
+ - lib/celerity/elements/table_elements.rb
122
+ - lib/celerity/elements/table_row.rb
123
+ - lib/celerity/elements/text_field.rb
124
+ - lib/celerity/exception.rb
125
+ - lib/celerity/htmlunit.rb
126
+ - lib/celerity/htmlunit/apache-mime4j-0.6.jar
127
+ - lib/celerity/htmlunit/commons-codec-1.4.jar
128
+ - lib/celerity/htmlunit/commons-collections-3.2.1.jar
129
+ - lib/celerity/htmlunit/commons-io-1.4.jar
130
+ - lib/celerity/htmlunit/commons-lang-2.5.jar
131
+ - lib/celerity/htmlunit/commons-logging-1.1.1.jar
132
+ - lib/celerity/htmlunit/cssparser-0.9.5.jar
133
+ - lib/celerity/htmlunit/htmlunit-2.9-SNAPSHOT.jar
134
+ - lib/celerity/htmlunit/htmlunit-core-js-2.8.jar
135
+ - lib/celerity/htmlunit/httpclient-4.0.1.jar
136
+ - lib/celerity/htmlunit/httpcore-4.0.1.jar
137
+ - lib/celerity/htmlunit/httpmime-4.0.1.jar
138
+ - lib/celerity/htmlunit/nekohtml-1.9.14.jar
139
+ - lib/celerity/htmlunit/sac-1.3.jar
140
+ - lib/celerity/htmlunit/serializer-2.7.1.jar
141
+ - lib/celerity/htmlunit/xalan-2.7.1.jar
142
+ - lib/celerity/htmlunit/xercesImpl-2.9.1.jar
143
+ - lib/celerity/htmlunit/xml-apis-1.3.04.jar
144
+ - lib/celerity/identifier.rb
145
+ - lib/celerity/ignoring_web_connection.rb
146
+ - lib/celerity/input_element.rb
147
+ - lib/celerity/javascript_debugger.rb
148
+ - lib/celerity/listener.rb
149
+ - lib/celerity/resources/no_viewer.png
150
+ - lib/celerity/short_inspect.rb
151
+ - lib/celerity/util.rb
152
+ - lib/celerity/version.rb
153
+ - lib/celerity/viewer_connection.rb
154
+ - lib/celerity/watir_compatibility.rb
155
+ - lib/celerity/xpath_support.rb
156
+ - tasks/benchmark.rake
157
+ - tasks/check.rake
158
+ - tasks/clean.rake
159
+ - tasks/fix.rake
160
+ - tasks/jar.rake
161
+ - tasks/jeweler.rake
162
+ - tasks/rdoc.rake
163
+ - tasks/snapshot.rake
164
+ - tasks/spec.rake
165
+ - tasks/website.rake
166
+ - tasks/yard.rake
167
+ has_rdoc: true
168
+ homepage: http://github.com/oki/celerity
169
+ licenses: []
170
+
171
+ post_install_message:
172
+ rdoc_options:
173
+ - --charset=UTF-8
174
+ require_paths:
175
+ - lib
176
+ required_ruby_version: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ hash: 3
182
+ segments:
183
+ - 0
184
+ version: "0"
185
+ required_rubygems_version: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ">"
189
+ - !ruby/object:Gem::Version
190
+ hash: 25
191
+ segments:
192
+ - 1
193
+ - 3
194
+ - 1
195
+ version: 1.3.1
196
+ requirements: []
197
+
198
+ rubyforge_project: oki-celerity
199
+ rubygems_version: 1.3.7
200
+ signing_key:
201
+ specification_version: 3
202
+ summary: Celerity is a JRuby library for easy and fast functional test automation for web applications.
203
+ test_files: []
204
+