jarib-celerity 0.0.5

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.
Files changed (69) hide show
  1. data/History.txt +42 -0
  2. data/License.txt +621 -0
  3. data/README.txt +64 -0
  4. data/Rakefile +12 -0
  5. data/lib/celerity.rb +59 -0
  6. data/lib/celerity/browser.rb +410 -0
  7. data/lib/celerity/clickable_element.rb +26 -0
  8. data/lib/celerity/collections.rb +148 -0
  9. data/lib/celerity/container.rb +488 -0
  10. data/lib/celerity/default_viewer.rb +10 -0
  11. data/lib/celerity/disabled_element.rb +27 -0
  12. data/lib/celerity/element.rb +241 -0
  13. data/lib/celerity/element_collections.rb +68 -0
  14. data/lib/celerity/element_locator.rb +167 -0
  15. data/lib/celerity/elements/button.rb +34 -0
  16. data/lib/celerity/elements/file_field.rb +17 -0
  17. data/lib/celerity/elements/form.rb +16 -0
  18. data/lib/celerity/elements/frame.rb +53 -0
  19. data/lib/celerity/elements/image.rb +57 -0
  20. data/lib/celerity/elements/label.rb +9 -0
  21. data/lib/celerity/elements/link.rb +12 -0
  22. data/lib/celerity/elements/meta.rb +6 -0
  23. data/lib/celerity/elements/non_control_elements.rb +93 -0
  24. data/lib/celerity/elements/option.rb +18 -0
  25. data/lib/celerity/elements/radio_check.rb +85 -0
  26. data/lib/celerity/elements/select_list.rb +81 -0
  27. data/lib/celerity/elements/table.rb +117 -0
  28. data/lib/celerity/elements/table_cell.rb +28 -0
  29. data/lib/celerity/elements/table_elements.rb +41 -0
  30. data/lib/celerity/elements/table_row.rb +36 -0
  31. data/lib/celerity/elements/text_field.rb +127 -0
  32. data/lib/celerity/exception.rb +40 -0
  33. data/lib/celerity/extra/method_generator.rb +158 -0
  34. data/lib/celerity/htmlunit.rb +41 -0
  35. data/lib/celerity/htmlunit/commons-codec-1.3.jar +0 -0
  36. data/lib/celerity/htmlunit/commons-collections-3.2.1.jar +0 -0
  37. data/lib/celerity/htmlunit/commons-httpclient-3.1.jar +0 -0
  38. data/lib/celerity/htmlunit/commons-io-1.4.jar +0 -0
  39. data/lib/celerity/htmlunit/commons-lang-2.4.jar +0 -0
  40. data/lib/celerity/htmlunit/commons-logging-1.1.1.jar +0 -0
  41. data/lib/celerity/htmlunit/cssparser-0.9.5.jar +0 -0
  42. data/lib/celerity/htmlunit/htmlunit-2.4-SNAPSHOT.jar +0 -0
  43. data/lib/celerity/htmlunit/htmlunit-core-js-2.4-SNAPSHOT.jar +0 -0
  44. data/lib/celerity/htmlunit/nekohtml-1.9.10-20081209.100757-4.jar +0 -0
  45. data/lib/celerity/htmlunit/sac-1.3.jar +0 -0
  46. data/lib/celerity/htmlunit/serializer-2.7.1.jar +0 -0
  47. data/lib/celerity/htmlunit/xalan-2.7.1.jar +0 -0
  48. data/lib/celerity/htmlunit/xercesImpl-2.8.1.jar +0 -0
  49. data/lib/celerity/htmlunit/xml-apis-1.3.04.jar +0 -0
  50. data/lib/celerity/identifier.rb +11 -0
  51. data/lib/celerity/input_element.rb +25 -0
  52. data/lib/celerity/listener.rb +106 -0
  53. data/lib/celerity/resources/no_viewer.png +0 -0
  54. data/lib/celerity/util.rb +79 -0
  55. data/lib/celerity/version.rb +9 -0
  56. data/lib/celerity/watir_compatibility.rb +85 -0
  57. data/tasks/benchmark.rake +4 -0
  58. data/tasks/deployment.rake +43 -0
  59. data/tasks/environment.rake +7 -0
  60. data/tasks/fix.rake +25 -0
  61. data/tasks/jar.rake +57 -0
  62. data/tasks/rdoc.rake +4 -0
  63. data/tasks/rspec.rake +30 -0
  64. data/tasks/simple_ci.rake +94 -0
  65. data/tasks/snapshot.rake +26 -0
  66. data/tasks/specserver.rake +21 -0
  67. data/tasks/website.rake +17 -0
  68. data/tasks/yard.rake +5 -0
  69. metadata +129 -0
@@ -0,0 +1,7 @@
1
+ task :ruby_env do
2
+ RUBY_APP = if RUBY_PLATFORM =~ /java/
3
+ "jruby"
4
+ else
5
+ "ruby"
6
+ end unless defined? RUBY_APP
7
+ end
data/tasks/fix.rake ADDED
@@ -0,0 +1,25 @@
1
+ namespace :fix do
2
+
3
+ desc 'Make all ruby files use UNIX (\n) 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,57 @@
1
+ require 'celerity/version'
2
+
3
+ namespace :jar do
4
+ target_dir = "classes"
5
+
6
+ desc "Compile and create celerity-complete-#{Celerity::VERSION::STRING}.jar (includes HtmlUnit)"
7
+ task :fat do
8
+ file_name = "pkg/celerity-complete-#{Celerity::VERSION::STRING}.jar"
9
+
10
+ ruby_files = Dir['lib/**/*.rb']
11
+ jar_files = Dir['lib/**/*.jar']
12
+ resources = Dir['lib/celerity/resources/*']
13
+
14
+ rm_rf target_dir if File.exist? target_dir
15
+ mkdir target_dir
16
+ mkdir_p resource_dir = "#{target_dir}/celerity/resources"
17
+
18
+ sh "jrubyc", "-d", "lib", "-t", target_dir, *ruby_files
19
+ resources.each { |extra| cp extra, resource_dir }
20
+
21
+ jar_files.each do |f|
22
+ cp f, target_dir
23
+ end
24
+
25
+ top_dir = Dir.pwd
26
+ chdir target_dir, :verbose => true
27
+ Dir['*.jar'].each do |file|
28
+ sh "jar", "xf", file
29
+ rm_f file
30
+ end
31
+ chdir top_dir, :verbose => true
32
+
33
+ mkdir_p "pkg"
34
+ sh "jar", "cvf", file_name, '-C', target_dir, '.'
35
+ end
36
+
37
+ desc "Compile and create celerity-#{Celerity::VERSION::STRING}.jar"
38
+ task :tiny do
39
+ file_name = "pkg/celerity-#{Celerity::VERSION::STRING}.jar"
40
+
41
+ ruby_files = Dir['lib/**/*.rb']
42
+ resources = Dir['lib/celerity/resources/*']
43
+
44
+ rm_rf target_dir if File.exist? target_dir
45
+ mkdir target_dir
46
+ mkdir_p resource_dir = "#{target_dir}/celerity/resources"
47
+
48
+ sh "jrubyc", "-d", "lib", "-t", target_dir, *ruby_files
49
+ resources.each { |extra| cp extra, resource_dir }
50
+
51
+ mkdir_p "pkg"
52
+ sh "jar", "cvf", file_name, '-C', target_dir, '.'
53
+ end
54
+ end
55
+
56
+ desc 'Alias for jar:tiny'
57
+ task :jar => %w[jar:tiny]
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
data/tasks/rspec.rake ADDED
@@ -0,0 +1,30 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems'
5
+ require 'spec'
6
+ end
7
+
8
+ begin
9
+ require 'spec/rake/spectask'
10
+ rescue LoadError
11
+ puts <<-EOS
12
+ To use rspec for testing you must install rspec gem:
13
+ gem install rspec
14
+ EOS
15
+ exit(0)
16
+ end
17
+
18
+ desc "Run the specs under spec/"
19
+ Spec::Rake::SpecTask.new do |t|
20
+ t.spec_opts = ['--options', "spec/spec.opts"]
21
+ t.spec_files = FileList['spec/**/*_spec.rb']
22
+
23
+ begin
24
+ require 'rcov'
25
+ t.rcov = true
26
+ t.rcov_opts = ['--exclude', 'spec,fcntl,path_helper,yaml', '--no-rcovrt']
27
+ rescue LoadError
28
+ end
29
+
30
+ end
@@ -0,0 +1,94 @@
1
+ require "rubygems"
2
+ require "fileutils"
3
+ require "erb"
4
+ require "pp"
5
+
6
+ begin
7
+ require "mongrel"
8
+ rescue LoadError
9
+ end
10
+
11
+ task :simple_ci do
12
+ INTERVAL = (60*5)
13
+ CI_ROOT = File.dirname(__FILE__) + "/../simple_ci"
14
+ ROOT = File.expand_path(CI_ROOT + "/..")
15
+ Dir.mkdir(CI_ROOT) unless File.exist?(CI_ROOT)
16
+
17
+ class SpecFile < Struct.new(:file, :describes)
18
+ attr_accessor :passed
19
+ end
20
+
21
+ def get_specs
22
+ Dir[File.dirname(__FILE__) + '/../spec/**/*_spec.rb'].map do |file|
23
+ SpecFile.new(file, File.read(file)[/describe\(?\s*["'](.+?)["']/, 1] || File.basename(file) )
24
+ end
25
+ end
26
+
27
+ class SimpleCI < Mongrel::HttpHandler
28
+ def self.template=(rhtml); @@template = rhtml; end
29
+
30
+ def initialize(results)
31
+ @results = results
32
+ super()
33
+ end
34
+
35
+ def process(request, response)
36
+ response.start(200) do |header, io|
37
+ if @results
38
+ io.write ERB.new(@@template).result
39
+ end
40
+ end
41
+ end
42
+
43
+ end
44
+
45
+ @results = {}
46
+ SimpleCI.template = <<-HTML
47
+ <html>
48
+ <head>
49
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
50
+ <title>Celerity Simple CI</title>
51
+ <style type="text/css" media="screen">
52
+ body {font: 10px/16px "Lucida Grande", Geneva, Arial, Verdana, sans-serif; background-color: #fff;color: #333;}
53
+ a{color:#2971a7;}
54
+ a:link,a:visited,a:active{text-decoration:none}
55
+ a:hover{text-decoration:underline}
56
+ table{border-collapse:collapse;border-spacing:0;margin-left:24px;}
57
+ </style>
58
+ </head>
59
+
60
+ <h1> Celerity </h1>
61
+ <h3><a href="result/">Test Results</a></h3>
62
+ <h3><a href="coverage/">Code Coverage</a></h3>
63
+ </html>
64
+ HTML
65
+
66
+ begin
67
+ @server = Mongrel::HttpServer.new('0.0.0.0', '8080')
68
+ rescue NameError
69
+ abort("Run `(jruby -S) gem install mongrel` to use this task.")
70
+ end
71
+ @server.register("/result", Mongrel::DirHandler.new(CI_ROOT))
72
+ @server.register("/coverage", Mongrel::DirHandler.new(CI_ROOT + "/coverage/coverage"))
73
+ @server.register("/", SimpleCI.new(@results))
74
+ Thread.new { @server.run.join }
75
+ puts "simple_ci started on #{@server.host}:#{@server.port}"
76
+ loop do
77
+ puts %x{svn up}
78
+ puts "*** running specs at #{Time.now}"
79
+ specs = get_specs
80
+
81
+ pp specs if $DEBUG
82
+ puts "*** running rcov at #{Time.now}"
83
+ puts %x{jruby -S rake --trace --silent spec > #{CI_ROOT}/index2.html}
84
+ FileUtils.mv(CI_ROOT + "/index2.html", CI_ROOT + "/index.html", :verbose => true)
85
+ Dir[CI_ROOT + "/coverage/*"].each { |f| FileUtils.rm_r(f, :verbose => true) }
86
+ FileUtils.mv(CI_ROOT + "/../coverage", CI_ROOT + "/coverage", :verbose => true)
87
+ puts "\n*** sleeping #{Time.now}"
88
+ sleep(INTERVAL)
89
+ end
90
+
91
+ end
92
+
93
+
94
+
@@ -0,0 +1,26 @@
1
+ desc 'Download and unpack the latest HtmlUnit assembly'
2
+ task :snapshot do
3
+ files = %w[ http://build.canoo.com/htmlunit/artifacts//htmlunit-2.4-SNAPSHOT.zip ]
4
+
5
+ files.each do |url|
6
+ basename = File.basename(url)
7
+ shortname = basename[/(.+?)\.zip/, 1]
8
+ puts ":"*(6+url.size)
9
+ puts ":: #{url} ::"
10
+ puts ":"*(6+url.size)
11
+
12
+ sh "curl -O #{url}"
13
+ sh "rm -r 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
+ sh "rm -r lib/celerity/htmlunit/#{shortname}/"
20
+
21
+ puts "Cleaning..."
22
+ rm basename
23
+
24
+ puts "...done!"
25
+ end
26
+ end
@@ -0,0 +1,21 @@
1
+ namespace :specserver do
2
+ task :http do
3
+ require File.dirname(__FILE__) + "/../support/spec_server.rb"
4
+ s = Celerity::SpecServer.new
5
+ s.run
6
+ puts "server started on #{s.host}\n log at: #{s.log_file}"
7
+ s.thread.join
8
+ end
9
+
10
+ desc "Run HTTPS webserver for specs"
11
+ task :https do
12
+ require File.dirname(__FILE__) + "/../support/spec_server.rb"
13
+ s = Celerity::SpecServer.new(:ssl => true)
14
+ s.run
15
+ puts "server started on #{s.host}\n log at: #{s.log_file}"
16
+ s.thread.join
17
+ end
18
+ end
19
+
20
+ desc "Run HTTP webserver for specs"
21
+ task :specserver => [:'specserver:http']
@@ -0,0 +1,17 @@
1
+ #desc 'Generate website files'
2
+ #task :website_generate => :ruby_env do
3
+ # (Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt|
4
+ # sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} }
5
+ # end
6
+ #end
7
+
8
+ desc 'Upload website files to rubyforge'
9
+ task :website_upload do
10
+ host = "#{rubyforge_username}@rubyforge.org"
11
+ remote_dir = "/var/www/gforge-projects/#{PATH}/"
12
+ local_dir = 'website'
13
+ sh %{rsync -rlgoDCv #{local_dir}/ #{host}:#{remote_dir}}
14
+ end
15
+
16
+ #desc 'Generate and upload website files'
17
+ #task :website => [:website_generate, :website_upload, :publish_docs]
data/tasks/yard.rake ADDED
@@ -0,0 +1,5 @@
1
+ desc 'Generate YARD docs in website/yard/'
2
+ task :yardoc2website do
3
+ mkdir_p "website/yard", :verbose => true
4
+ sh "yardoc --verbose -o website/yard"
5
+ end
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jarib-celerity
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ platform: ruby
6
+ authors:
7
+ - Jari Bakken
8
+ - T. Alexander Lystad
9
+ - Knut Johannes Dahle
10
+ autorequire: celerity
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2008-12-19 00:00:00 -08:00
15
+ default_executable:
16
+ dependencies: []
17
+
18
+ description: Celerity is a JRuby library for easy and fast functional test automation for web applications
19
+ email: jari.bakken@finn.no
20
+ executables: []
21
+
22
+ extensions: []
23
+
24
+ extra_rdoc_files:
25
+ - README.txt
26
+ - License.txt
27
+ - History.txt
28
+ files:
29
+ - Rakefile
30
+ - History.txt
31
+ - README.txt
32
+ - lib/celerity
33
+ - lib/celerity/browser.rb
34
+ - lib/celerity/clickable_element.rb
35
+ - lib/celerity/collections.rb
36
+ - lib/celerity/container.rb
37
+ - lib/celerity/default_viewer.rb
38
+ - lib/celerity/disabled_element.rb
39
+ - lib/celerity/element.rb
40
+ - lib/celerity/element_collections.rb
41
+ - lib/celerity/element_locator.rb
42
+ - lib/celerity/elements
43
+ - lib/celerity/elements/button.rb
44
+ - lib/celerity/elements/file_field.rb
45
+ - lib/celerity/elements/form.rb
46
+ - lib/celerity/elements/frame.rb
47
+ - lib/celerity/elements/image.rb
48
+ - lib/celerity/elements/label.rb
49
+ - lib/celerity/elements/link.rb
50
+ - lib/celerity/elements/meta.rb
51
+ - lib/celerity/elements/non_control_elements.rb
52
+ - lib/celerity/elements/option.rb
53
+ - lib/celerity/elements/radio_check.rb
54
+ - lib/celerity/elements/select_list.rb
55
+ - lib/celerity/elements/table.rb
56
+ - lib/celerity/elements/table_cell.rb
57
+ - lib/celerity/elements/table_elements.rb
58
+ - lib/celerity/elements/table_row.rb
59
+ - lib/celerity/elements/text_field.rb
60
+ - lib/celerity/exception.rb
61
+ - lib/celerity/extra
62
+ - lib/celerity/extra/method_generator.rb
63
+ - lib/celerity/htmlunit
64
+ - lib/celerity/htmlunit/commons-codec-1.3.jar
65
+ - lib/celerity/htmlunit/commons-collections-3.2.1.jar
66
+ - lib/celerity/htmlunit/commons-httpclient-3.1.jar
67
+ - lib/celerity/htmlunit/commons-io-1.4.jar
68
+ - lib/celerity/htmlunit/commons-lang-2.4.jar
69
+ - lib/celerity/htmlunit/commons-logging-1.1.1.jar
70
+ - lib/celerity/htmlunit/cssparser-0.9.5.jar
71
+ - lib/celerity/htmlunit/htmlunit-2.4-SNAPSHOT.jar
72
+ - lib/celerity/htmlunit/htmlunit-core-js-2.4-SNAPSHOT.jar
73
+ - lib/celerity/htmlunit/nekohtml-1.9.10-20081209.100757-4.jar
74
+ - lib/celerity/htmlunit/sac-1.3.jar
75
+ - lib/celerity/htmlunit/serializer-2.7.1.jar
76
+ - lib/celerity/htmlunit/xalan-2.7.1.jar
77
+ - lib/celerity/htmlunit/xercesImpl-2.8.1.jar
78
+ - lib/celerity/htmlunit/xml-apis-1.3.04.jar
79
+ - lib/celerity/htmlunit.rb
80
+ - lib/celerity/identifier.rb
81
+ - lib/celerity/input_element.rb
82
+ - lib/celerity/listener.rb
83
+ - lib/celerity/resources
84
+ - lib/celerity/resources/no_viewer.png
85
+ - lib/celerity/util.rb
86
+ - lib/celerity/version.rb
87
+ - lib/celerity/watir_compatibility.rb
88
+ - lib/celerity.rb
89
+ - tasks/benchmark.rake
90
+ - tasks/deployment.rake
91
+ - tasks/environment.rake
92
+ - tasks/fix.rake
93
+ - tasks/jar.rake
94
+ - tasks/rdoc.rake
95
+ - tasks/rspec.rake
96
+ - tasks/simple_ci.rake
97
+ - tasks/snapshot.rake
98
+ - tasks/specserver.rake
99
+ - tasks/website.rake
100
+ - tasks/yard.rake
101
+ - License.txt
102
+ has_rdoc: true
103
+ homepage: http://celerity.rubyforge.org
104
+ post_install_message:
105
+ rdoc_options: []
106
+
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: "0"
114
+ version:
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: "0"
120
+ version:
121
+ requirements: []
122
+
123
+ rubyforge_project:
124
+ rubygems_version: 1.2.0
125
+ signing_key:
126
+ specification_version: 2
127
+ summary: Celerity is a JRuby library for easy and fast functional test automation for web applications
128
+ test_files: []
129
+