jarib-celerity 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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
+