celerity 0.0.7.2 → 0.7.3
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.
- 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
|