celerity 0.0.7.2 → 0.7.3
Sign up to get free protection for your applications and to get access to all the features.
- data/{History.txt → HISTORY} +0 -0
- data/{License.txt → LICENSE} +0 -0
- data/Rakefile +3 -26
- data/VERSION.yml +4 -0
- data/celerity.gemspec +93 -16
- data/lib/celerity/browser.rb +2 -2
- data/lib/celerity/version.rb +1 -1
- data/tasks/jeweler.rake +26 -0
- data/tasks/spec.rake +26 -0
- data/tasks/website.rake +10 -17
- data/tasks/yard.rake +12 -5
- metadata +26 -32
- data/Manifest.txt +0 -82
- data/spec/browser_authentication_spec.rb +0 -16
- data/spec/browser_spec.rb +0 -300
- data/spec/clickable_element_spec.rb +0 -39
- data/spec/default_viewer_spec.rb +0 -23
- data/spec/element_spec.rb +0 -51
- data/spec/filefield_spec.rb +0 -18
- data/spec/htmlunit_spec.rb +0 -56
- data/spec/index_offset_spec.rb +0 -24
- data/spec/listener_spec.rb +0 -142
- data/spec/spec_helper.rb +0 -8
- data/tasks/deployment.rake +0 -43
- data/tasks/environment.rake +0 -7
- data/tasks/rspec.rake +0 -43
data/{History.txt → HISTORY}
RENAMED
File without changes
|
data/{License.txt → LICENSE}
RENAMED
File without changes
|
data/Rakefile
CHANGED
@@ -1,34 +1,11 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
|
3
|
-
require 'hoe'
|
4
|
-
%w[fileutils rubigen].each { |f| require f }
|
5
|
-
|
2
|
+
require 'rake'
|
6
3
|
require "lib/celerity/version"
|
7
4
|
|
8
|
-
Hoe.plugin :newgem # newgem 1.5.2+
|
9
|
-
Hoe.plugin :website
|
10
|
-
|
11
|
-
# Generate all the Rake tasks
|
12
|
-
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
13
|
-
Hoe.spec 'celerity' do |s|
|
14
|
-
s.developer "Jari Bakken", "jari.bakken@finn.no"
|
15
|
-
s.version = Celerity::VERSION
|
16
|
-
s.clean_globs = %w[classes/* pkg/ doc/*]
|
17
|
-
|
18
|
-
s.author << "Jari Bakken" << "T. Alexander Lystad" << "Knut Johannes Dahle"
|
19
|
-
s.email << "jari.bakken@finn.no"
|
20
|
-
s.extra_dev_deps << ['sinatra', '>= 0.9.4']
|
21
|
-
s.summary = "Celerity is a JRuby library for easy and fast functional test automation for web applications."
|
22
|
-
|
23
|
-
# hack to avoid the extra file
|
24
|
-
@website_config = {'host' => 'jarib@rubyforge.org', 'remote_dir' => "/var/www/gforge-projects/celerity"}
|
25
|
-
end
|
26
|
-
|
27
5
|
Dir['tasks/**/*.rake'].each do |rake|
|
28
6
|
begin
|
29
7
|
load rake
|
30
|
-
rescue LoadError
|
8
|
+
rescue LoadError => e
|
9
|
+
puts e.message
|
31
10
|
end
|
32
11
|
end
|
33
|
-
# load 'tasks/jar.rake'
|
34
|
-
# load 'tasks/rdoc.rake'
|
data/VERSION.yml
ADDED
data/celerity.gemspec
CHANGED
@@ -1,22 +1,96 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
1
4
|
# -*- encoding: utf-8 -*-
|
2
5
|
|
3
6
|
Gem::Specification.new do |s|
|
4
7
|
s.name = %q{celerity}
|
5
|
-
s.version = "0.
|
8
|
+
s.version = "0.7.3"
|
6
9
|
|
7
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Jari Bakken", "
|
9
|
-
s.date = %q{2009-
|
10
|
-
s.description = %q{Celerity is a JRuby
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
s.
|
17
|
-
|
18
|
-
|
19
|
-
|
11
|
+
s.authors = ["Jari Bakken", "T. Alexander Lystad", "Knut Johannes Dahle"]
|
12
|
+
s.date = %q{2009-10-07}
|
13
|
+
s.description = %q{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.}
|
14
|
+
s.email = %q{jari.bakken@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
"HISTORY",
|
21
|
+
"LICENSE",
|
22
|
+
"README.rdoc",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION.yml",
|
25
|
+
"celerity.gemspec",
|
26
|
+
"lib/celerity.rb",
|
27
|
+
"lib/celerity/browser.rb",
|
28
|
+
"lib/celerity/clickable_element.rb",
|
29
|
+
"lib/celerity/collections.rb",
|
30
|
+
"lib/celerity/container.rb",
|
31
|
+
"lib/celerity/default_viewer.rb",
|
32
|
+
"lib/celerity/disabled_element.rb",
|
33
|
+
"lib/celerity/element.rb",
|
34
|
+
"lib/celerity/element_collection.rb",
|
35
|
+
"lib/celerity/element_locator.rb",
|
36
|
+
"lib/celerity/elements/button.rb",
|
37
|
+
"lib/celerity/elements/file_field.rb",
|
38
|
+
"lib/celerity/elements/form.rb",
|
39
|
+
"lib/celerity/elements/frame.rb",
|
40
|
+
"lib/celerity/elements/image.rb",
|
41
|
+
"lib/celerity/elements/label.rb",
|
42
|
+
"lib/celerity/elements/link.rb",
|
43
|
+
"lib/celerity/elements/meta.rb",
|
44
|
+
"lib/celerity/elements/non_control_elements.rb",
|
45
|
+
"lib/celerity/elements/option.rb",
|
46
|
+
"lib/celerity/elements/radio_check.rb",
|
47
|
+
"lib/celerity/elements/select_list.rb",
|
48
|
+
"lib/celerity/elements/table.rb",
|
49
|
+
"lib/celerity/elements/table_cell.rb",
|
50
|
+
"lib/celerity/elements/table_elements.rb",
|
51
|
+
"lib/celerity/elements/table_row.rb",
|
52
|
+
"lib/celerity/elements/text_field.rb",
|
53
|
+
"lib/celerity/exception.rb",
|
54
|
+
"lib/celerity/htmlunit.rb",
|
55
|
+
"lib/celerity/htmlunit/commons-codec-1.4.jar",
|
56
|
+
"lib/celerity/htmlunit/commons-collections-3.2.1.jar",
|
57
|
+
"lib/celerity/htmlunit/commons-httpclient-3.1.jar",
|
58
|
+
"lib/celerity/htmlunit/commons-io-1.4.jar",
|
59
|
+
"lib/celerity/htmlunit/commons-lang-2.4.jar",
|
60
|
+
"lib/celerity/htmlunit/commons-logging-1.1.1.jar",
|
61
|
+
"lib/celerity/htmlunit/cssparser-0.9.5.jar",
|
62
|
+
"lib/celerity/htmlunit/htmlunit-2.7-SNAPSHOT.jar",
|
63
|
+
"lib/celerity/htmlunit/htmlunit-core-js-2.7-SNAPSHOT.jar",
|
64
|
+
"lib/celerity/htmlunit/nekohtml-1.9.13.jar",
|
65
|
+
"lib/celerity/htmlunit/sac-1.3.jar",
|
66
|
+
"lib/celerity/htmlunit/serializer-2.7.1.jar",
|
67
|
+
"lib/celerity/htmlunit/xalan-2.7.1.jar",
|
68
|
+
"lib/celerity/htmlunit/xercesImpl-2.9.1.jar",
|
69
|
+
"lib/celerity/htmlunit/xml-apis-1.3.04.jar",
|
70
|
+
"lib/celerity/identifier.rb",
|
71
|
+
"lib/celerity/ignoring_web_connection.rb",
|
72
|
+
"lib/celerity/input_element.rb",
|
73
|
+
"lib/celerity/javascript_debugger.rb",
|
74
|
+
"lib/celerity/listener.rb",
|
75
|
+
"lib/celerity/resources/no_viewer.png",
|
76
|
+
"lib/celerity/short_inspect.rb",
|
77
|
+
"lib/celerity/util.rb",
|
78
|
+
"lib/celerity/version.rb",
|
79
|
+
"lib/celerity/viewer_connection.rb",
|
80
|
+
"lib/celerity/watir_compatibility.rb",
|
81
|
+
"lib/celerity/xpath_support.rb",
|
82
|
+
"tasks/benchmark.rake",
|
83
|
+
"tasks/fix.rake",
|
84
|
+
"tasks/jar.rake",
|
85
|
+
"tasks/jeweler.rake",
|
86
|
+
"tasks/rdoc.rake",
|
87
|
+
"tasks/snapshot.rake",
|
88
|
+
"tasks/spec.rake",
|
89
|
+
"tasks/website.rake",
|
90
|
+
"tasks/yard.rake"
|
91
|
+
]
|
92
|
+
s.homepage = %q{http://github.com/jarib/celerity}
|
93
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
20
94
|
s.require_paths = ["lib"]
|
21
95
|
s.rubyforge_project = %q{celerity}
|
22
96
|
s.rubygems_version = %q{1.3.5}
|
@@ -27,14 +101,17 @@ web applications. Celerity provides a superset of Watir's API.}
|
|
27
101
|
s.specification_version = 3
|
28
102
|
|
29
103
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
104
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
105
|
+
s.add_development_dependency(%q<yard>, [">= 0"])
|
30
106
|
s.add_development_dependency(%q<sinatra>, [">= 0.9.4"])
|
31
|
-
s.add_development_dependency(%q<hoe>, [">= 2.3.3"])
|
32
107
|
else
|
108
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
109
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
33
110
|
s.add_dependency(%q<sinatra>, [">= 0.9.4"])
|
34
|
-
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
35
111
|
end
|
36
112
|
else
|
113
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
114
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
37
115
|
s.add_dependency(%q<sinatra>, [">= 0.9.4"])
|
38
|
-
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
39
116
|
end
|
40
117
|
end
|
data/lib/celerity/browser.rb
CHANGED
@@ -33,7 +33,7 @@ module Celerity
|
|
33
33
|
# @see Celerity::Container for an introduction to the main API.
|
34
34
|
#
|
35
35
|
# @option opts :browser [:internet_explorer, :firefox, :firefox3] (:firefox3) Set the BrowserVersion used by HtmlUnit. Defaults to Firefox 3.
|
36
|
-
# @option opts :charset [String] ("UTF-8") Specify the charset that webclient will use for requests
|
36
|
+
# @option opts :charset [String] ("UTF-8") Specify the charset that webclient will use for requests.
|
37
37
|
# @option opts :css [Boolean] (false) Enable CSS. Disabled by default.
|
38
38
|
# @option opts :ignore_pattern [Regexp] See Browser#ignore_pattern=
|
39
39
|
# @option opts :javascript_enabled [Boolean] (true) Enable/disable JavaScript evaluation. Enabled by default.
|
@@ -62,8 +62,8 @@ module Celerity
|
|
62
62
|
raise ArgumentError, "expected one of #{render_types.inspect} for key :render"
|
63
63
|
end
|
64
64
|
|
65
|
-
opts = opts.dup # we'll delete from opts, so dup to avoid side effects
|
66
65
|
@options = opts.dup # keep the unmodified version around as well
|
66
|
+
opts = opts.dup # we'll delete from opts, so dup to avoid side effects
|
67
67
|
|
68
68
|
@render_type = opts.delete(:render) || :html
|
69
69
|
@charset = opts.delete(:charset) || "UTF-8"
|
data/lib/celerity/version.rb
CHANGED
data/tasks/jeweler.rake
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
begin
|
2
|
+
require 'jeweler'
|
3
|
+
Jeweler::Tasks.new do |gem|
|
4
|
+
# see http://www.rubygems.org/read/chapter/20 for additional settings
|
5
|
+
gem.name = "celerity"
|
6
|
+
gem.summary = "Celerity is a JRuby library for easy and fast functional test automation for web applications."
|
7
|
+
gem.description = %Q{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.}
|
8
|
+
gem.email = "jari.bakken@gmail.com"
|
9
|
+
gem.homepage = "http://github.com/jarib/celerity"
|
10
|
+
gem.authors = ["Jari Bakken", "T. Alexander Lystad", "Knut Johannes Dahle"]
|
11
|
+
gem.rubyforge_project = "celerity"
|
12
|
+
gem.test_files = [] # the gem is big enough as it is
|
13
|
+
|
14
|
+
gem.files.reject! { |f| f =~ /^(website|doc|benchmark|log|spec|\.)/}
|
15
|
+
|
16
|
+
gem.add_development_dependency "rspec"
|
17
|
+
gem.add_development_dependency "yard"
|
18
|
+
gem.add_development_dependency 'sinatra', '>= 0.9.4'
|
19
|
+
end
|
20
|
+
|
21
|
+
Jeweler::GemcutterTasks.new
|
22
|
+
Jeweler::RubyforgeTasks.new { |rf| rf.doc_task = "yardoc" }
|
23
|
+
rescue LoadError
|
24
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
25
|
+
task :spec => :check_dependencies
|
26
|
+
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.spec_files = FileList['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 --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
|
data/tasks/website.rake
CHANGED
@@ -1,17 +1,10 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
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]
|
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
CHANGED
@@ -1,9 +1,16 @@
|
|
1
1
|
begin
|
2
|
-
require
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
7
10
|
end
|
11
|
+
|
8
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
|
9
16
|
end
|
metadata
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: celerity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jari Bakken
|
8
|
-
- Jari Bakken
|
9
8
|
- T. Alexander Lystad
|
10
9
|
- Knut Johannes Dahle
|
11
10
|
autorequire:
|
@@ -16,43 +15,50 @@ date: 2009-10-07 00:00:00 +02:00
|
|
16
15
|
default_executable:
|
17
16
|
dependencies:
|
18
17
|
- !ruby/object:Gem::Dependency
|
19
|
-
name:
|
18
|
+
name: rspec
|
20
19
|
type: :development
|
21
20
|
version_requirement:
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - ">="
|
25
24
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0
|
25
|
+
version: "0"
|
26
|
+
version:
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: yard
|
29
|
+
type: :development
|
30
|
+
version_requirement:
|
31
|
+
version_requirements: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: "0"
|
27
36
|
version:
|
28
37
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
38
|
+
name: sinatra
|
30
39
|
type: :development
|
31
40
|
version_requirement:
|
32
41
|
version_requirements: !ruby/object:Gem::Requirement
|
33
42
|
requirements:
|
34
43
|
- - ">="
|
35
44
|
- !ruby/object:Gem::Version
|
36
|
-
version:
|
45
|
+
version: 0.9.4
|
37
46
|
version:
|
38
|
-
description: ""
|
39
|
-
email:
|
40
|
-
- jari.bakken@finn.no
|
41
|
-
- jari.bakken@finn.no
|
47
|
+
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."
|
48
|
+
email: jari.bakken@gmail.com
|
42
49
|
executables: []
|
43
50
|
|
44
51
|
extensions: []
|
45
52
|
|
46
53
|
extra_rdoc_files:
|
47
|
-
-
|
48
|
-
-
|
49
|
-
- Manifest.txt
|
54
|
+
- LICENSE
|
55
|
+
- README.rdoc
|
50
56
|
files:
|
51
|
-
-
|
52
|
-
-
|
53
|
-
- Manifest.txt
|
57
|
+
- HISTORY
|
58
|
+
- LICENSE
|
54
59
|
- README.rdoc
|
55
60
|
- Rakefile
|
61
|
+
- VERSION.yml
|
56
62
|
- celerity.gemspec
|
57
63
|
- lib/celerity.rb
|
58
64
|
- lib/celerity/browser.rb
|
@@ -110,34 +116,22 @@ files:
|
|
110
116
|
- lib/celerity/viewer_connection.rb
|
111
117
|
- lib/celerity/watir_compatibility.rb
|
112
118
|
- lib/celerity/xpath_support.rb
|
113
|
-
- spec/browser_authentication_spec.rb
|
114
|
-
- spec/browser_spec.rb
|
115
|
-
- spec/clickable_element_spec.rb
|
116
|
-
- spec/default_viewer_spec.rb
|
117
|
-
- spec/element_spec.rb
|
118
|
-
- spec/filefield_spec.rb
|
119
|
-
- spec/htmlunit_spec.rb
|
120
|
-
- spec/index_offset_spec.rb
|
121
|
-
- spec/listener_spec.rb
|
122
|
-
- spec/spec_helper.rb
|
123
119
|
- tasks/benchmark.rake
|
124
|
-
- tasks/deployment.rake
|
125
|
-
- tasks/environment.rake
|
126
120
|
- tasks/fix.rake
|
127
121
|
- tasks/jar.rake
|
122
|
+
- tasks/jeweler.rake
|
128
123
|
- tasks/rdoc.rake
|
129
|
-
- tasks/rspec.rake
|
130
124
|
- tasks/snapshot.rake
|
125
|
+
- tasks/spec.rake
|
131
126
|
- tasks/website.rake
|
132
127
|
- tasks/yard.rake
|
133
128
|
has_rdoc: true
|
134
|
-
homepage:
|
129
|
+
homepage: http://github.com/jarib/celerity
|
135
130
|
licenses: []
|
136
131
|
|
137
132
|
post_install_message:
|
138
133
|
rdoc_options:
|
139
|
-
- --
|
140
|
-
- README.txt
|
134
|
+
- --charset=UTF-8
|
141
135
|
require_paths:
|
142
136
|
- lib
|
143
137
|
required_ruby_version: !ruby/object:Gem::Requirement
|
data/Manifest.txt
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
History.txt
|
2
|
-
License.txt
|
3
|
-
Manifest.txt
|
4
|
-
README.rdoc
|
5
|
-
Rakefile
|
6
|
-
celerity.gemspec
|
7
|
-
lib/celerity.rb
|
8
|
-
lib/celerity/browser.rb
|
9
|
-
lib/celerity/clickable_element.rb
|
10
|
-
lib/celerity/collections.rb
|
11
|
-
lib/celerity/container.rb
|
12
|
-
lib/celerity/default_viewer.rb
|
13
|
-
lib/celerity/disabled_element.rb
|
14
|
-
lib/celerity/element.rb
|
15
|
-
lib/celerity/element_collection.rb
|
16
|
-
lib/celerity/element_locator.rb
|
17
|
-
lib/celerity/elements/button.rb
|
18
|
-
lib/celerity/elements/file_field.rb
|
19
|
-
lib/celerity/elements/form.rb
|
20
|
-
lib/celerity/elements/frame.rb
|
21
|
-
lib/celerity/elements/image.rb
|
22
|
-
lib/celerity/elements/label.rb
|
23
|
-
lib/celerity/elements/link.rb
|
24
|
-
lib/celerity/elements/meta.rb
|
25
|
-
lib/celerity/elements/non_control_elements.rb
|
26
|
-
lib/celerity/elements/option.rb
|
27
|
-
lib/celerity/elements/radio_check.rb
|
28
|
-
lib/celerity/elements/select_list.rb
|
29
|
-
lib/celerity/elements/table.rb
|
30
|
-
lib/celerity/elements/table_cell.rb
|
31
|
-
lib/celerity/elements/table_elements.rb
|
32
|
-
lib/celerity/elements/table_row.rb
|
33
|
-
lib/celerity/elements/text_field.rb
|
34
|
-
lib/celerity/exception.rb
|
35
|
-
lib/celerity/htmlunit.rb
|
36
|
-
lib/celerity/htmlunit/commons-codec-1.4.jar
|
37
|
-
lib/celerity/htmlunit/commons-collections-3.2.1.jar
|
38
|
-
lib/celerity/htmlunit/commons-httpclient-3.1.jar
|
39
|
-
lib/celerity/htmlunit/commons-io-1.4.jar
|
40
|
-
lib/celerity/htmlunit/commons-lang-2.4.jar
|
41
|
-
lib/celerity/htmlunit/commons-logging-1.1.1.jar
|
42
|
-
lib/celerity/htmlunit/cssparser-0.9.5.jar
|
43
|
-
lib/celerity/htmlunit/htmlunit-2.7-SNAPSHOT.jar
|
44
|
-
lib/celerity/htmlunit/htmlunit-core-js-2.7-SNAPSHOT.jar
|
45
|
-
lib/celerity/htmlunit/nekohtml-1.9.13.jar
|
46
|
-
lib/celerity/htmlunit/sac-1.3.jar
|
47
|
-
lib/celerity/htmlunit/serializer-2.7.1.jar
|
48
|
-
lib/celerity/htmlunit/xalan-2.7.1.jar
|
49
|
-
lib/celerity/htmlunit/xercesImpl-2.9.1.jar
|
50
|
-
lib/celerity/htmlunit/xml-apis-1.3.04.jar
|
51
|
-
lib/celerity/identifier.rb
|
52
|
-
lib/celerity/ignoring_web_connection.rb
|
53
|
-
lib/celerity/input_element.rb
|
54
|
-
lib/celerity/javascript_debugger.rb
|
55
|
-
lib/celerity/listener.rb
|
56
|
-
lib/celerity/resources/no_viewer.png
|
57
|
-
lib/celerity/short_inspect.rb
|
58
|
-
lib/celerity/util.rb
|
59
|
-
lib/celerity/version.rb
|
60
|
-
lib/celerity/viewer_connection.rb
|
61
|
-
lib/celerity/watir_compatibility.rb
|
62
|
-
lib/celerity/xpath_support.rb
|
63
|
-
spec/browser_authentication_spec.rb
|
64
|
-
spec/browser_spec.rb
|
65
|
-
spec/clickable_element_spec.rb
|
66
|
-
spec/default_viewer_spec.rb
|
67
|
-
spec/element_spec.rb
|
68
|
-
spec/filefield_spec.rb
|
69
|
-
spec/htmlunit_spec.rb
|
70
|
-
spec/index_offset_spec.rb
|
71
|
-
spec/listener_spec.rb
|
72
|
-
spec/spec_helper.rb
|
73
|
-
tasks/benchmark.rake
|
74
|
-
tasks/deployment.rake
|
75
|
-
tasks/environment.rake
|
76
|
-
tasks/fix.rake
|
77
|
-
tasks/jar.rake
|
78
|
-
tasks/rdoc.rake
|
79
|
-
tasks/rspec.rake
|
80
|
-
tasks/snapshot.rake
|
81
|
-
tasks/website.rake
|
82
|
-
tasks/yard.rake
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/watirspec/spec_helper'
|
2
|
-
|
3
|
-
describe "Browser" do
|
4
|
-
|
5
|
-
describe "#credentials=" do
|
6
|
-
it "sets the basic authentication credentials" do
|
7
|
-
browser.goto(WatirSpec.host + "/authentication")
|
8
|
-
browser.text.should_not include("ok")
|
9
|
-
|
10
|
-
browser.credentials = "foo:bar"
|
11
|
-
|
12
|
-
browser.goto(WatirSpec.host + "/authentication")
|
13
|
-
browser.text.should include("ok")
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
data/spec/browser_spec.rb
DELETED
@@ -1,300 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/watirspec/spec_helper'
|
2
|
-
|
3
|
-
describe "Browser" do
|
4
|
-
describe "#new" do
|
5
|
-
it "raises TypeError if argument is not a Hash" do
|
6
|
-
lambda { Browser.new(:foo) }.should raise_error(TypeError)
|
7
|
-
end
|
8
|
-
|
9
|
-
it "raises ArgumentError if given bad arguments for :render key" do
|
10
|
-
lambda { Browser.new(:render => :foo) }.should raise_error(ArgumentError)
|
11
|
-
end
|
12
|
-
|
13
|
-
it "raises ArgumentError if given bad arguments for :browser key" do
|
14
|
-
lambda { Browser.new(:browser => 'foo') }.should raise_error(ArgumentError)
|
15
|
-
end
|
16
|
-
|
17
|
-
it "raises ArgumentError if given an unknown option" do
|
18
|
-
lambda { Browser.new(:foo => 1) }.should raise_error(ArgumentError)
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should hold the init options" do
|
22
|
-
browser.options.should == WatirSpec.browser_args.first
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should use the specified proxy" do
|
26
|
-
# TODO: find a better way to test this with rack
|
27
|
-
require 'webrick/httpproxy'
|
28
|
-
|
29
|
-
received = false
|
30
|
-
blk = lambda { received = true }
|
31
|
-
s = WEBrick::HTTPProxyServer.new(:Port => 2001, :ProxyContentHandler => blk)
|
32
|
-
Thread.new { s.start }
|
33
|
-
|
34
|
-
b = Browser.new(WatirSpec.browser_args.first.merge(:proxy => "localhost:2001"))
|
35
|
-
b.goto(WatirSpec.host)
|
36
|
-
s.shutdown
|
37
|
-
|
38
|
-
received.should be_true
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should use the specified user agent" do
|
42
|
-
b = Browser.new(WatirSpec.browser_args.first.merge(:user_agent => "Celerity"))
|
43
|
-
b.goto(WatirSpec.host + "/header_echo")
|
44
|
-
b.text.should include('"HTTP_USER_AGENT"=>"Celerity"')
|
45
|
-
b.close
|
46
|
-
end
|
47
|
-
|
48
|
-
it "does not try to find a viewer if created with :viewer => false" do
|
49
|
-
ViewerConnection.should_not_receive(:create)
|
50
|
-
|
51
|
-
b = Browser.new(:viewer => false)
|
52
|
-
b.close
|
53
|
-
end
|
54
|
-
|
55
|
-
it "tries to find a viewer if created with :viewer => nil" do
|
56
|
-
ViewerConnection.should_receive(:create).with("127.0.0.1", 6429)
|
57
|
-
|
58
|
-
b = Browser.new(:viewer => nil)
|
59
|
-
b.close
|
60
|
-
end
|
61
|
-
|
62
|
-
it "tries to find a viewer on the specified host/port with :viewer => String" do
|
63
|
-
ViewerConnection.should_receive(:create).with("localhost", 1234)
|
64
|
-
|
65
|
-
b = Browser.new(:viewer => "localhost:1234")
|
66
|
-
b.close
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
describe "#html" do
|
71
|
-
%w(shift_jis iso-2022-jp euc-jp).each do |charset|
|
72
|
-
it "returns decoded #{charset.upcase} when :charset specified" do
|
73
|
-
browser = Browser.new(WatirSpec.browser_args.first.merge(:charset => charset.upcase))
|
74
|
-
browser.goto(WatirSpec.files + "/#{charset}_text.html")
|
75
|
-
# Browser#text is automagically transcoded into the right charset, but Browser#html isn't.
|
76
|
-
browser.html.should =~ /本日は晴天なり。/
|
77
|
-
browser.close
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
describe "#response_headers" do
|
83
|
-
it "returns the response headers (as a hash)" do
|
84
|
-
browser.goto(WatirSpec.host + "/non_control_elements.html")
|
85
|
-
browser.response_headers.should be_kind_of(Hash)
|
86
|
-
browser.response_headers['Date'].should be_kind_of(String)
|
87
|
-
browser.response_headers['Content-Type'].should be_kind_of(String)
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
describe "#content_type" do
|
92
|
-
it "returns the content type" do
|
93
|
-
browser.goto(WatirSpec.host + "/non_control_elements.html")
|
94
|
-
browser.content_type.should =~ /\w+\/\w+/
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
describe "#io" do
|
99
|
-
it "returns the io object of the content" do
|
100
|
-
browser.goto(WatirSpec.files + "/non_control_elements.html")
|
101
|
-
browser.io.should be_kind_of(IO)
|
102
|
-
browser.io.read.should == File.read("#{WatirSpec.html}/non_control_elements.html")
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
describe "#goto" do
|
107
|
-
it "raises UnexpectedPageException if the content type is not understood" do
|
108
|
-
lambda { browser.goto(WatirSpec.host + "/octet_stream") }.should raise_error(UnexpectedPageException)
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
describe "#cookies" do
|
113
|
-
it "returns set cookies as a Ruby hash" do
|
114
|
-
cookies = browser.cookies
|
115
|
-
cookies.should be_instance_of(Hash)
|
116
|
-
cookies.should be_empty
|
117
|
-
|
118
|
-
browser.goto(WatirSpec.host + "/set_cookie")
|
119
|
-
|
120
|
-
cookies = browser.cookies
|
121
|
-
cookies.size.should == 1
|
122
|
-
cookies[WatirSpec::Server.host]['monster'].should == "/"
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
describe "#clear_cookies" do
|
127
|
-
it "clears all cookies" do
|
128
|
-
b = WatirSpec.new_browser
|
129
|
-
b.cookies.should be_empty
|
130
|
-
|
131
|
-
b.goto(WatirSpec.host + "/set_cookie")
|
132
|
-
b.cookies.size.should == 1
|
133
|
-
b.clear_cookies
|
134
|
-
b.cookies.should be_empty
|
135
|
-
|
136
|
-
b.close
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
describe "add_cookie" do
|
141
|
-
it "adds a cookie with the given domain, name and value" do
|
142
|
-
browser.add_cookie("example.com", "foo", "bar")
|
143
|
-
cookies = browser.cookies
|
144
|
-
cookies.should be_instance_of(Hash)
|
145
|
-
cookies.should have_key('example.com')
|
146
|
-
cookies['example.com']['foo'].should == 'bar'
|
147
|
-
|
148
|
-
browser.clear_cookies
|
149
|
-
end
|
150
|
-
|
151
|
-
it "adds a cookie with the specified options" do
|
152
|
-
browser.add_cookie("example.com", "foo", "bar", :path => "/foobar", :expires => Time.now + 100000)
|
153
|
-
cookies = browser.cookies
|
154
|
-
cookies.should be_instance_of(Hash)
|
155
|
-
cookies['example.com']['foo'].should == 'bar'
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
|
-
describe "remove_cookie" do
|
160
|
-
it "removes the cookie for the given domain and name" do
|
161
|
-
b = WatirSpec.new_browser
|
162
|
-
b.goto(WatirSpec.host + "/set_cookie")
|
163
|
-
|
164
|
-
b.remove_cookie(WatirSpec::Server.host, "monster")
|
165
|
-
b.cookies.should be_empty
|
166
|
-
|
167
|
-
b.close
|
168
|
-
end
|
169
|
-
|
170
|
-
it "raises an error if no such cookie exists" do
|
171
|
-
lambda { browser.remove_cookie("bogus.com", "bar") }.should raise_error(CookieNotFoundError)
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
describe "#wait" do
|
176
|
-
it "should wait for javascript timers to finish" do
|
177
|
-
alerts = 0
|
178
|
-
browser.add_listener(:alert) { alerts += 1 }
|
179
|
-
browser.goto(WatirSpec.files + "/timeout.html")
|
180
|
-
browser.div(:id, 'alert').click
|
181
|
-
browser.wait.should be_true
|
182
|
-
alerts.should == 1
|
183
|
-
end
|
184
|
-
end
|
185
|
-
|
186
|
-
describe "#wait_while" do
|
187
|
-
it "waits until the specified condition becomes false" do
|
188
|
-
browser.goto(WatirSpec.files + "/timeout.html")
|
189
|
-
browser.div(:id, "change").click
|
190
|
-
browser.wait_while { browser.contains_text("Trigger change") }
|
191
|
-
browser.div(:id, "change").text.should == "all done"
|
192
|
-
end
|
193
|
-
|
194
|
-
it "returns the value returned from the block" do
|
195
|
-
browser.wait_while { false }.should == false
|
196
|
-
end
|
197
|
-
end
|
198
|
-
|
199
|
-
describe "#wait_until" do
|
200
|
-
it "waits until the condition becomes true" do
|
201
|
-
browser.goto(WatirSpec.files + "/timeout.html")
|
202
|
-
browser.div(:id, "change").click
|
203
|
-
browser.wait_until { browser.contains_text("all done") }
|
204
|
-
end
|
205
|
-
|
206
|
-
it "returns the value returned from the block" do
|
207
|
-
browser.wait_until { true }.should == true
|
208
|
-
end
|
209
|
-
end
|
210
|
-
|
211
|
-
describe "#element_by_xpath" do
|
212
|
-
it "returns usable elements even though they're not supported" do
|
213
|
-
browser.goto(WatirSpec.files + "/forms_with_input_elements.html")
|
214
|
-
|
215
|
-
el = browser.element_by_xpath("//link")
|
216
|
-
el.should be_instance_of(Celerity::Element)
|
217
|
-
el.rel.should == "stylesheet"
|
218
|
-
end
|
219
|
-
end
|
220
|
-
|
221
|
-
describe "#focused_element" do
|
222
|
-
it "returns the element that currently has the focus" do
|
223
|
-
b = WatirSpec.new_browser
|
224
|
-
b.goto(WatirSpec.files + "/forms_with_input_elements.html")
|
225
|
-
b.focused_element.id.should == "new_user_first_name"
|
226
|
-
|
227
|
-
b.close
|
228
|
-
end
|
229
|
-
end
|
230
|
-
|
231
|
-
describe "#status_code" do
|
232
|
-
it "returns the status code of the last request" do
|
233
|
-
browser.goto(WatirSpec.files + "/forms_with_input_elements.html")
|
234
|
-
browser.status_code.should == 200
|
235
|
-
|
236
|
-
browser.goto(WatirSpec.host + "/doesnt_exist")
|
237
|
-
browser.status_code.should == 404
|
238
|
-
end
|
239
|
-
end
|
240
|
-
|
241
|
-
describe "#status_code_exceptions" do
|
242
|
-
it "raises status code exceptions if set to true" do
|
243
|
-
browser.status_code_exceptions = true
|
244
|
-
lambda do
|
245
|
-
browser.goto(WatirSpec.host + "/doesnt_exist")
|
246
|
-
end.should raise_error(NavigationException)
|
247
|
-
end
|
248
|
-
end
|
249
|
-
|
250
|
-
describe "#javascript_exceptions" do
|
251
|
-
it "raises javascript exceptions if set to true" do
|
252
|
-
browser.goto(WatirSpec.files + "/forms_with_input_elements.html")
|
253
|
-
browser.javascript_exceptions = true
|
254
|
-
lambda do
|
255
|
-
browser.execute_script("no_such_function()")
|
256
|
-
end.should raise_error
|
257
|
-
end
|
258
|
-
end
|
259
|
-
|
260
|
-
describe "#add_listener" do
|
261
|
-
it "should click OK for confirm() calls" do
|
262
|
-
browser.goto(WatirSpec.files + "/forms_with_input_elements.html")
|
263
|
-
browser.add_listener(:confirm) { }
|
264
|
-
browser.execute_script("confirm()").should == true
|
265
|
-
end
|
266
|
-
end
|
267
|
-
|
268
|
-
describe "#add_checker" do
|
269
|
-
|
270
|
-
# watir only supports a lambda instance as argument, celerity supports both
|
271
|
-
it "runs the given block on each page load" do
|
272
|
-
output = ''
|
273
|
-
|
274
|
-
browser.add_checker { |browser| output << browser.text }
|
275
|
-
browser.goto(WatirSpec.files + "/non_control_elements.html")
|
276
|
-
|
277
|
-
output.should include('Dubito, ergo cogito, ergo sum')
|
278
|
-
end
|
279
|
-
end
|
280
|
-
|
281
|
-
|
282
|
-
describe "#confirm" do
|
283
|
-
it "clicks 'OK' for a confirm() call" do
|
284
|
-
browser.goto(WatirSpec.files + "/forms_with_input_elements.html")
|
285
|
-
|
286
|
-
browser.confirm(true) do
|
287
|
-
browser.execute_script('confirm()').should be_true
|
288
|
-
end
|
289
|
-
end
|
290
|
-
|
291
|
-
it "clicks 'cancel' for a confirm() call" do
|
292
|
-
browser.goto(WatirSpec.files + "/forms_with_input_elements.html")
|
293
|
-
|
294
|
-
browser.confirm(false) do
|
295
|
-
browser.execute_script('confirm()').should be_false
|
296
|
-
end
|
297
|
-
end
|
298
|
-
end
|
299
|
-
|
300
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/watirspec/spec_helper'
|
2
|
-
|
3
|
-
describe "ClickableElement" do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
browser.goto(WatirSpec.files + "/non_control_elements.html")
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "#click_and_attach" do
|
10
|
-
it 'opens a page in a new browser with the same options' do
|
11
|
-
b = browser.link(:name, /bad_attribute/).click_and_attach
|
12
|
-
b.text.include?("User administration").should be_true # to make sure it is open.
|
13
|
-
b.options.should == browser.options
|
14
|
-
b.cookies.should == browser.cookies
|
15
|
-
end
|
16
|
-
|
17
|
-
it "opens the page in a new browser with the same cookies" do
|
18
|
-
browser.add_cookie("localhost", "foo", "bar")
|
19
|
-
old_cookies = browser.cookies
|
20
|
-
old_cookies.should_not be_empty
|
21
|
-
|
22
|
-
browser.goto(WatirSpec.files + "/non_control_elements.html")
|
23
|
-
b = browser.link(:name, /bad_attribute/).click_and_attach
|
24
|
-
|
25
|
-
b.should_not == browser
|
26
|
-
b.cookies.should == old_cookies
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe "#download" do
|
31
|
-
it 'returns a click-opened page as io' do
|
32
|
-
expected = File.read "#{WatirSpec.files}/forms_with_input_elements.html".sub("file://", '')
|
33
|
-
|
34
|
-
browser.link(:name, /bad_attribute/).download.read.should == expected
|
35
|
-
browser.link(:name, /bad_attribute/).should exist
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
data/spec/default_viewer_spec.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/watirspec/spec_helper'
|
2
|
-
|
3
|
-
describe "DefaultViewer" do
|
4
|
-
|
5
|
-
before :all do
|
6
|
-
browser.goto(WatirSpec.files + "/definition_lists.html")
|
7
|
-
end
|
8
|
-
|
9
|
-
describe ".save" do
|
10
|
-
it "saves the default image to the given path" do
|
11
|
-
fail("don't run specs with CelerityViewer") if browser.viewer != Celerity::DefaultViewer
|
12
|
-
fname = File.expand_path "default_viewer_test.png"
|
13
|
-
default = "#{File.dirname(__FILE__)}/../lib/celerity/resources/no_viewer.png"
|
14
|
-
|
15
|
-
browser.viewer.save(fname)
|
16
|
-
File.exist?(fname).should be_true
|
17
|
-
File.read(fname).should == File.read(default)
|
18
|
-
|
19
|
-
File.delete(fname)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
data/spec/element_spec.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
-
|
4
|
-
describe "Element" do
|
5
|
-
|
6
|
-
before :each do
|
7
|
-
browser.goto(WatirSpec.files + "/forms_with_input_elements.html")
|
8
|
-
end
|
9
|
-
|
10
|
-
describe "#identifier_string" do
|
11
|
-
it "doesn't make the next locate find the wrong element" do
|
12
|
-
elem = browser.div(:id, 'hidden_parent')
|
13
|
-
elem.should exist
|
14
|
-
def elem.public_identifier_string; identifier_string end # method is private
|
15
|
-
elem.public_identifier_string
|
16
|
-
elem.id.should == 'hidden_parent'
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "#method_missing" do
|
21
|
-
it "magically returns the requested attribute if the attribute is defined in the attribute list" do
|
22
|
-
browser.form(:index, 1).action.should == 'post_to_me'
|
23
|
-
end
|
24
|
-
|
25
|
-
it "raises NoMethodError if the requested method isn't among the attributes" do
|
26
|
-
lambda { browser.button(:index, 1).no_such_attribute_or_method }.should raise_error(NoMethodError)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe "#xpath" do
|
31
|
-
it "gets the canonical xpath of this element" do
|
32
|
-
browser.text_field(:id, "new_user_email").xpath.should == '/html/body/form[1]/fieldset[1]/input[3]'
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe "#javascript_object" do
|
37
|
-
it "should return the JavaScript object representing the receiver" do
|
38
|
-
obj = browser.div(:id, "onfocus_test").javascript_object
|
39
|
-
obj.should be_kind_of(com.gargoylesoftware.htmlunit.javascript.host.html.HTMLElement)
|
40
|
-
obj.should be_instance_of(com.gargoylesoftware.htmlunit.javascript.host.html.HTMLDivElement)
|
41
|
-
obj.client_width.should be_kind_of(Integer)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
describe "#locate" do
|
46
|
-
it "raises ArgumentError when used with :object and the object given isn't an HtmlElement subclass" do
|
47
|
-
lambda { Link.new(browser, :object, "foo").locate }.should raise_error(ArgumentError)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
data/spec/filefield_spec.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require File.dirname(__FILE__) + '/watirspec/spec_helper'
|
3
|
-
|
4
|
-
describe "FileField" do
|
5
|
-
|
6
|
-
before :each do
|
7
|
-
browser.goto(WatirSpec.files + "/forms_with_input_elements.html")
|
8
|
-
end
|
9
|
-
|
10
|
-
describe "#set" do
|
11
|
-
it "sends content as correct content type for common file types" do
|
12
|
-
browser.file_field(:name, "new_user_portrait").set("foo.doc")
|
13
|
-
obj = browser.file_field(:name, "new_user_portrait").locate
|
14
|
-
obj.getContentType.should == "application/msword"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
data/spec/htmlunit_spec.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/watirspec/spec_helper'
|
2
|
-
|
3
|
-
describe "HtmlUnit bugs" do
|
4
|
-
describe "HtmlUnit bug 1968686: https://sourceforge.net/tracker/index.php?func=detail&aid=1968686&group_id=47038&atid=448266" do
|
5
|
-
it "does not raise NativeException: java.lang.StackOverflowError when going to a page where Javascripts prints a <body> tag inside another <body> tag" do
|
6
|
-
lambda { browser.goto(WatirSpec.files + "/bug_javascript_001.html") }.should_not raise_error(NativeException)
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
describe "HtmlUnit bug 1968708: https://sourceforge.net/tracker/index.php?func=detail&aid=1968708&group_id=47038&atid=448266" do
|
11
|
-
it "only considers the first attribute if there are duplicate attributes" do
|
12
|
-
browser.goto(WatirSpec.files + "/bug_duplicate_attributes.html")
|
13
|
-
browser.text_field(:index, 1).id.should == "org_id"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "NekoHtml parser bug: https://sourceforge.net/tracker/?func=detail&aid=2824922&group_id=47038&atid=448266" do
|
18
|
-
it "does not run out of java heap space" do
|
19
|
-
lambda { browser.goto(WatirSpec.files + "/parser_bug_001.html") }.should_not raise_error
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
# disabled for CI - need fix from HtmlUnit
|
24
|
-
# describe "HtmlUnit bug XXXXXX" do
|
25
|
-
# it "returns strings as UTF-8 when there's a charset mismatch between HTTP response header and <meta> tag" do
|
26
|
-
# browser.goto(WatirSpec.host + "/charset_mismatch")
|
27
|
-
# browser.h1(:index, 1).text.should == "\303\270"
|
28
|
-
# end
|
29
|
-
# end
|
30
|
-
|
31
|
-
it "evaluates <script> tags injected in the DOM through JQuery's replaceWith() - fixed in rev. 3598" do
|
32
|
-
browser.goto(WatirSpec.files + "/jquery.html")
|
33
|
-
browser.link(:class, 'editLink').click
|
34
|
-
browser.div(:id, 'content').text.should == "typeof update: function"
|
35
|
-
end
|
36
|
-
|
37
|
-
it "doesn't return the TinyMCE DOM when executing javascript functions" do
|
38
|
-
b = WatirSpec.new_browser
|
39
|
-
|
40
|
-
b.goto(WatirSpec.files + "/tiny_mce.html")
|
41
|
-
b.text.should include("Beskrivelse")
|
42
|
-
b.checkbox(:id, "exemption").set
|
43
|
-
b.text.should include("Beskrivelse")
|
44
|
-
|
45
|
-
b.close
|
46
|
-
end
|
47
|
-
|
48
|
-
describe "HtmlUnit bug 2811607: https://sourceforge.net/tracker/?func=detail&aid=2811607&group_id=47038&atid=448266" do
|
49
|
-
it "correctly prevents default on <form>#submit()" do
|
50
|
-
browser.goto(WatirSpec.files + "/prevent_form_submit.html")
|
51
|
-
browser.button(:id, "next").click
|
52
|
-
browser.title.should == "preventDefault() on form submission"
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
data/spec/index_offset_spec.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/watirspec/spec_helper'
|
2
|
-
|
3
|
-
describe "Celerity.index_offset" do
|
4
|
-
|
5
|
-
before :all do
|
6
|
-
browser.goto(WatirSpec.files + "/non_control_elements.html")
|
7
|
-
|
8
|
-
Celerity.index_offset = 0
|
9
|
-
end
|
10
|
-
|
11
|
-
it "returns the correct divs" do
|
12
|
-
divs = browser.divs.to_a
|
13
|
-
|
14
|
-
divs.each_with_index do |div, idx|
|
15
|
-
browser.div(:index, idx).id.should == div.id
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
after :all do
|
20
|
-
Celerity.index_offset = 1
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
|
data/spec/listener_spec.rb
DELETED
@@ -1,142 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/watirspec/spec_helper'
|
2
|
-
|
3
|
-
describe "Listener" do
|
4
|
-
before(:each) do
|
5
|
-
@web_client = mock("WebClient", :null_object => true)
|
6
|
-
@listener = Celerity::Listener.new(@web_client)
|
7
|
-
end
|
8
|
-
|
9
|
-
it "implements the StatusHandler interface" do
|
10
|
-
@listener.should be_a_kind_of(com.gargoylesoftware.htmlunit.StatusHandler)
|
11
|
-
|
12
|
-
@listener.should respond_to(:statusMessageChanged)
|
13
|
-
lambda { @listener.statusMessageChanged('page', 'message') }.should_not raise_error
|
14
|
-
end
|
15
|
-
|
16
|
-
it "implements the ConfirmHandler interface" do
|
17
|
-
@listener.should be_a_kind_of(com.gargoylesoftware.htmlunit.ConfirmHandler)
|
18
|
-
|
19
|
-
@listener.should respond_to(:handleConfirm)
|
20
|
-
lambda { @listener.handleConfirm('page', 'message') }.should_not raise_error
|
21
|
-
end
|
22
|
-
|
23
|
-
it "implements the AttachmentHandler interface" do
|
24
|
-
@listener.should be_a_kind_of(com.gargoylesoftware.htmlunit.attachment.AttachmentHandler)
|
25
|
-
|
26
|
-
@listener.should respond_to(:handleAttachment)
|
27
|
-
lambda { @listener.handleAttachment('page') }.should_not raise_error
|
28
|
-
end
|
29
|
-
|
30
|
-
it "implements the AlertHandler interface" do
|
31
|
-
@listener.should be_a_kind_of(com.gargoylesoftware.htmlunit.AlertHandler)
|
32
|
-
|
33
|
-
@listener.should respond_to(:handleAlert)
|
34
|
-
lambda { @listener.handleAlert('page', 'message') }.should_not raise_error
|
35
|
-
end
|
36
|
-
|
37
|
-
it "implements the HTMLParserListener interface" do
|
38
|
-
@listener.should be_a_kind_of(com.gargoylesoftware.htmlunit.html.HTMLParserListener)
|
39
|
-
|
40
|
-
@listener.should respond_to(:error)
|
41
|
-
@listener.should respond_to(:warning)
|
42
|
-
|
43
|
-
lambda { @listener.error('message', 'url', 1, 2, "key") }.should_not raise_error
|
44
|
-
lambda { @listener.warning('message', 'url', 1, 2, "key") }.should_not raise_error
|
45
|
-
end
|
46
|
-
|
47
|
-
it "implements the WebWindowListener interface" do
|
48
|
-
@listener.should be_a_kind_of(com.gargoylesoftware.htmlunit.WebWindowListener)
|
49
|
-
|
50
|
-
@listener.should respond_to(:webWindowClosed)
|
51
|
-
@listener.should respond_to(:webWindowContentChanged)
|
52
|
-
@listener.should respond_to(:webWindowOpened)
|
53
|
-
|
54
|
-
lambda { @listener.webWindowClosed('event') }.should_not raise_error
|
55
|
-
lambda { @listener.webWindowContentChanged('event') }.should_not raise_error
|
56
|
-
lambda { @listener.webWindowOpened('event') }.should_not raise_error
|
57
|
-
end
|
58
|
-
|
59
|
-
it "implements the IncorrectnessListener interface" do
|
60
|
-
@listener.should be_a_kind_of(com.gargoylesoftware.htmlunit.IncorrectnessListener)
|
61
|
-
|
62
|
-
@listener.should respond_to(:notify)
|
63
|
-
lambda { @listener.notify('message', 'origin') }.should_not raise_error
|
64
|
-
end
|
65
|
-
|
66
|
-
it "implements the PromptHandler interface" do
|
67
|
-
@listener.should be_a_kind_of(com.gargoylesoftware.htmlunit.PromptHandler)
|
68
|
-
|
69
|
-
@listener.should respond_to(:handlePrompt)
|
70
|
-
lambda { @listener.handlePrompt('page', 'message') }.should_not raise_error
|
71
|
-
end
|
72
|
-
|
73
|
-
|
74
|
-
describe "#add_listener" do
|
75
|
-
it "adds itself as a listener for the :status type" do
|
76
|
-
@web_client.should_receive('setStatusHandler').with(@listener)
|
77
|
-
@listener.add_listener(:status) {}
|
78
|
-
end
|
79
|
-
|
80
|
-
it "adds itself as a listener for the :alert type" do
|
81
|
-
@web_client.should_receive('setAlertHandler').with(@listener)
|
82
|
-
@listener.add_listener(:alert) {}
|
83
|
-
end
|
84
|
-
|
85
|
-
it "adds itself as a listener for the :confirm type" do
|
86
|
-
@web_client.should_receive('setConfirmHandler').with(@listener)
|
87
|
-
@listener.add_listener(:confirm) {}
|
88
|
-
end
|
89
|
-
|
90
|
-
it "adds itself as a listener for the :prompt type" do
|
91
|
-
@web_client.should_receive('setPromptHandler').with(@listener)
|
92
|
-
@listener.add_listener(:prompt) {}
|
93
|
-
end
|
94
|
-
|
95
|
-
it "adds itself as a listener for the :web_window_event type" do
|
96
|
-
@web_client.should_receive('addWebWindowListener').with(@listener)
|
97
|
-
@listener.add_listener(:web_window_event) {}
|
98
|
-
end
|
99
|
-
|
100
|
-
it "adds itself as a listener for the :html_parser type" do
|
101
|
-
@web_client.should_receive('setHTMLParserListener').with(@listener)
|
102
|
-
@listener.add_listener(:html_parser) {}
|
103
|
-
end
|
104
|
-
|
105
|
-
it "adds itself as a listener for the :incorrectness type" do
|
106
|
-
@web_client.should_receive('setIncorrectnessListener').with(@listener)
|
107
|
-
@listener.add_listener(:incorrectness) {}
|
108
|
-
end
|
109
|
-
|
110
|
-
it "adds itself as a listener for the :attachment type" do
|
111
|
-
@web_client.should_receive('setAttachmentHandler').with(@listener)
|
112
|
-
@listener.add_listener(:attachment) {}
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
describe "#remove_listener" do
|
117
|
-
it "removes the listener at the given index" do
|
118
|
-
updates = []
|
119
|
-
first, second = lambda { updates << :first }, lambda { updates << :second }
|
120
|
-
|
121
|
-
@listener.add_listener(:prompt, &first)
|
122
|
-
@listener.add_listener(:prompt, &second)
|
123
|
-
|
124
|
-
@listener.remove_listener(:prompt, 0)
|
125
|
-
@listener.handlePrompt('foo', 'bar')
|
126
|
-
updates.should == [:second]
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
it "handles several invocations of all registered listeners" do
|
131
|
-
updates = []
|
132
|
-
@listener.add_listener(:alert) { updates << :first }
|
133
|
-
@listener.add_listener(:alert) { updates << :second }
|
134
|
-
|
135
|
-
@listener.handleAlert('foo', 'bar')
|
136
|
-
updates.should == [:first, :second]
|
137
|
-
|
138
|
-
@listener.handleAlert('foo', 'bar')
|
139
|
-
updates.should == [:first, :second, :first, :second]
|
140
|
-
end
|
141
|
-
|
142
|
-
end
|
data/spec/spec_helper.rb
DELETED
data/tasks/deployment.rake
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
#desc 'Release the website and new gem version'
|
2
|
-
#task :deploy => [:check_version, :website, :release] do
|
3
|
-
# puts "Remember to create SVN tag:"
|
4
|
-
# puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " +
|
5
|
-
# "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} "
|
6
|
-
# puts "Suggested comment:"
|
7
|
-
# puts "Tagging release #{CHANGES}"
|
8
|
-
#end
|
9
|
-
|
10
|
-
desc 'Builds and installs gem locally'
|
11
|
-
task :local_deploy => [:install_gem]
|
12
|
-
|
13
|
-
#task :check_version do
|
14
|
-
# unless ENV['VERSION']
|
15
|
-
# puts 'Must pass a VERSION=x.y.z release version'
|
16
|
-
# exit
|
17
|
-
# end
|
18
|
-
# unless ENV['VERSION'] == VERS
|
19
|
-
# puts "Please update your version.rb to match the release version, currently #{VERS}"
|
20
|
-
# exit
|
21
|
-
# end
|
22
|
-
#end
|
23
|
-
|
24
|
-
#desc 'Install the package as a gem, without generating documentation(ri/rdoc)'
|
25
|
-
#task :install_gem_no_doc => [:clean, :package] do
|
26
|
-
# sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri"
|
27
|
-
#end
|
28
|
-
|
29
|
-
namespace :manifest do
|
30
|
-
desc 'Recreate Manifest.txt to include ALL files'
|
31
|
-
task :refresh do
|
32
|
-
`rake check_manifest | patch -p0 > Manifest.txt`
|
33
|
-
end
|
34
|
-
desc 'Create new Manifest.txt in diff format'
|
35
|
-
task :new do
|
36
|
-
manifest = File.new('Manifest.txt', 'w+')
|
37
|
-
Dir.glob(File.join("**", "*")).each do |f|
|
38
|
-
manifest.puts f
|
39
|
-
end
|
40
|
-
manifest.flush
|
41
|
-
puts "####\n# Remember to edit Manifest.txt and remove unwanted file entries!\n####"
|
42
|
-
end
|
43
|
-
end
|
data/tasks/environment.rake
DELETED
data/tasks/rspec.rake
DELETED
@@ -1,43 +0,0 @@
|
|
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
|
-
|
19
|
-
if File.exist?(path = "spec/watirspec/watirspec.rake")
|
20
|
-
load path
|
21
|
-
end
|
22
|
-
|
23
|
-
namespace :watirspec do
|
24
|
-
desc 'Initialize and fetch the watirspec submodule'
|
25
|
-
task :init do
|
26
|
-
sh "git submodule init"
|
27
|
-
sh "git submodule update"
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
desc "Run the specs under spec/"
|
32
|
-
Spec::Rake::SpecTask.new do |t|
|
33
|
-
t.spec_files = FileList['spec/**/*_spec.rb']
|
34
|
-
# t.ruby_opts = %w[--headless] if RUBY_PLATFORM =~ /java/
|
35
|
-
|
36
|
-
begin
|
37
|
-
require 'rcov'
|
38
|
-
t.rcov = true
|
39
|
-
t.rcov_opts = ['--exclude', 'spec,fcntl,path_helper,yaml', '--no-rcovrt']
|
40
|
-
rescue LoadError
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|