diff --git a/.travis.yml b/.travis.yml index dc247585..8ff8b410 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,9 @@ sudo: false bundler_args: '' +before_install: + - gem install bundler -v 1.12.3 + before_script: - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ffeed9d..8b6a0702 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Changed +* [176](https://github.com/appfolio/ae_page_objects/pull/176) Limit exposed constants to _public_ API. * [175](https://github.com/appfolio/ae_page_objects/issues/175) Use `BasicRouter` as default. Move Rails support to `ae_page_objects/rails`. * [107](https://github.com/appfolio/ae_page_objects/issues/107) Replaced `Site` and `Document.site` with `AePageObjects.default_router` and `Document.router` * [82](https://github.com/appfolio/ae_page_objects/pull/82) Removed Ruby 1.8.7 support diff --git a/Gemfile b/Gemfile index a9bbe30d..ac42e43f 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ source "https://rubygems.org" -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem "mocha", "= 0.13.3" gem "selenium-webdriver", "~> 2.53.0" gem 'gem-release', '0.7.4' diff --git a/Rakefile b/Rakefile index 489653ea..f2e160e6 100644 --- a/Rakefile +++ b/Rakefile @@ -9,8 +9,6 @@ require 'appraisal' require 'rake/testtask' -require 'pp' - Bundler::GemHelper.install_tasks @@ -21,11 +19,11 @@ end class SeleniumRunner - TestConfig = Struct.new(:rails_version, :gemfile) + TestConfig = Struct.new(:rails_version, :test_app_root, :gemfile) def initialize(options = {}) - @options = options - @matrix = read_matrix + @options = options + @matrix = read_matrix end def clean @@ -37,9 +35,9 @@ class SeleniumRunner test_app_directory = File.dirname(appraisal_file) begin - Command.new("cd #{test_app_directory} && bundle check || bundle install").run - Command.new("cd #{test_app_directory} && rake appraisal:gemfiles").run - rescue Exception => e + run_command("cd #{test_app_directory} && bundle check || bundle install") + run_command("cd #{test_app_directory} && appraisal generate") + rescue => e puts e.class puts e.message end @@ -47,17 +45,15 @@ class SeleniumRunner end def install_all - @matrix.values.each do |test_configs| - test_configs.each do |test_config| - install_config(test_config) - end + @matrix.keys.each do |rails_version| + install_all_for(rails_version) end end def install_all_for(rails_version) - @matrix[rails_version].each do |test_config| - install_config(test_config) - end + test_config = @matrix[rails_version].first + run_command("cd #{test_config.test_app_root} && bundle check || bundle install") + run_command("cd #{test_config.test_app_root} && appraisal install") end def run_all_tests @@ -68,67 +64,28 @@ class SeleniumRunner end def run_all_tests_for(rails_version) - rails_versions = @matrix[rails_version] - if !rails_versions || rails_versions.empty? + gemfiles_for_rails_version = @matrix[rails_version] + if !gemfiles_for_rails_version || gemfiles_for_rails_version.empty? puts "Tests for #{rails_version} can't run on #{RUBY_VERSION}" return end - rails_versions.each do |test_config| - run_test(test_config.gemfile, "test/test_apps/#{rails_version}", "bundle exec rake test:selenium") + gemfiles_for_rails_version.each do |test_config| + run_test(test_config, "bundle exec rake test:selenium") end end private - def install_config(test_config) - appraisal = Appraisal::Appraisal.new("name", test_config.gemfile) - - def appraisal.gemfile_path - @gemfile_path - end - - appraisal.instance_variable_set(:@gemfile_path, test_config.gemfile) - - if @options[:dry] - puts "Installing: #{test_config.gemfile}" - else - appraisal.install - end - end - - # Appraisal::Command almost has what I need: a way to run things without Bundler/Ruby - # Env variables. The subclassing is to override the initializer to not modify the command. - class Command < Appraisal::Command - def initialize(command, gemfile = nil) - @original_env = {} - @gemfile = gemfile - @command = command - end - end - - def run_test(gemfile, directory, command) + def run_test(test_config, command) puts "---------------------", 'Test Config', - "Gemfile: #{gemfile}", + "Gemfile: #{test_config.gemfile}", + "Directory: #{test_config.test_app_root}", "Command: '#{command}'", "---------------------" - with_gemfile_symlink(directory, gemfile, "Gemfile") do - if !@options[:dry] - Command.new("cd #{directory} && #{command}", gemfile).run - end - end - end - - def with_gemfile_symlink(directory, use_gemfile, app_gemfile) - run_command("cd #{directory} && ln -sf #{use_gemfile} #{app_gemfile}") - run_command("cd #{directory} && ln -sf #{use_gemfile}.lock #{app_gemfile}.lock") - - yield - - run_command("cd #{directory} && git checkout -- #{app_gemfile}") - run_command("rm -f #{directory}/#{app_gemfile}.lock") + run_command("cd #{test_config.test_app_root} && #{command}", test_config.gemfile) end def read_matrix @@ -137,25 +94,37 @@ class SeleniumRunner matrix = {} Dir.glob(file_pattern).each do |file| - matches = file.match(%r{test/test_apps/(\d\.\d)/gemfiles/(.*ruby(\d\.\d\.\d)\.gemfile)}) + matches = file.match(%r{(test/test_apps/(\d\.\d))/gemfiles/(.*ruby(\d\.\d\.\d)\.gemfile)}) gemfile_path = matches[0] - rails_version = matches[1] - gemfile = matches[2] - ruby_version = matches[3] + app_root = matches[1] + rails_version = matches[2] + gemfile = matches[3] + ruby_version = matches[4] matrix[rails_version] ||= [] - matrix[rails_version] << TestConfig.new(rails_version, File.expand_path("../#{gemfile_path}", __FILE__)) + matrix[rails_version] << TestConfig.new(rails_version, app_root, File.expand_path("../#{gemfile_path}", __FILE__)) end matrix end - def run_command(command) + def run_command(command, gemfile = nil) + if gemfile + command = "BUNDLE_GEMFILE=#{gemfile} #{command}" + end + puts "Running '#{command}'" + return if @options[:dry] + + specific_gemfile_env = Bundler.clean_env + + if gemfile + specific_gemfile_env['BUNDLE_GEMFILE'] = gemfile + end - if ! @options[:dry] - `#{command}` + Bundler.send(:with_env, specific_gemfile_env) do + system(command) raise unless $?.exitstatus == 0 end end @@ -178,12 +147,19 @@ namespace :test do end namespace :integration do - desc "Run unit test for ae_page_objects under appraisal environment" + desc "Run unit test for ae_page_objects under appraisal environment" task :units do - system("bundle exec rake -s appraisal test:units") + system("appraisal rake test:units") raise unless $?.exitstatus == 0 end + namespace :units do + task :install do + system("appraisal install") + raise unless $?.exitstatus == 0 + end + end + namespace :selenium do desc "Resolve and install dependencies for all test apps" task :install do @@ -220,14 +196,14 @@ namespace :test do ci_install = nil ci_task = nil - if ! (ENV['RAILS_VERSION'].nil? ^ ENV['UNITS'].nil?) - ci_install = ["appraisal:install", "test:integration:selenium:install"] + if !(ENV['RAILS_VERSION'].nil? ^ ENV['UNITS'].nil?) + ci_install = ["test:integration:units:install", "test:integration:selenium:install"] ci_task = ['test:integration:units', 'test:integration:selenium'] elsif ENV['RAILS_VERSION'] ci_install = "test:integration:selenium:install" ci_task = 'test:integration:selenium' elsif ENV['UNITS'] - ci_install = "appraisal:install" + ci_install = "test:integration:units:install" ci_task = 'test:integration:units' end diff --git a/ae_page_objects.gemspec b/ae_page_objects.gemspec index 8d641f38..fc36d901 100644 --- a/ae_page_objects.gemspec +++ b/ae_page_objects.gemspec @@ -5,7 +5,6 @@ Gem::Specification.new do |s| s.name = "ae_page_objects" s.version = AePageObjects::VERSION - s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= s.required_ruby_version = '>= 1.9.3' s.authors = ["Donnie Tognazzini"] s.description = "Capybara Page Objects pattern" @@ -14,7 +13,6 @@ Gem::Specification.new do |s| s.homepage = "http://github.com/appfolio/ae_page_objects" s.licenses = ["MIT"] s.require_paths = ["lib"] - s.rubygems_version = "1.8.24" s.summary = "Capybara Page Objects pattern" s.files = `git ls-files -- lib`.split("\n") diff --git a/gemfiles/capybara_2.1_ruby1.9.3.gemfile b/gemfiles/capybara_2.1_ruby1.9.3.gemfile index 12fb7ae5..4c8cd39a 100644 --- a/gemfiles/capybara_2.1_ruby1.9.3.gemfile +++ b/gemfiles/capybara_2.1_ruby1.9.3.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem "mocha", "= 0.13.3" gem "selenium-webdriver", "~> 2.53.0" gem "gem-release", "0.7.4" @@ -11,4 +11,4 @@ gem "test-unit", "~> 3.0" gem "mime-types", "< 3" gem "capybara", "~> 2.1.0" -gemspec :path=>"../" +gemspec :path => "../" diff --git a/gemfiles/capybara_2.2_ruby2.2.5.gemfile b/gemfiles/capybara_2.2_ruby2.2.5.gemfile index 8ee72d57..db1bc605 100644 --- a/gemfiles/capybara_2.2_ruby2.2.5.gemfile +++ b/gemfiles/capybara_2.2_ruby2.2.5.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem "mocha", "= 0.13.3" gem "selenium-webdriver", "~> 2.53.0" gem "gem-release", "0.7.4" @@ -10,4 +10,4 @@ gem "rake", "~> 11.0" gem "test-unit", "~> 3.0" gem "capybara", "~> 2.2.0" -gemspec :path=>"../" \ No newline at end of file +gemspec :path => "../" diff --git a/gemfiles/capybara_2.3_ruby2.2.5.gemfile b/gemfiles/capybara_2.3_ruby2.2.5.gemfile index 9d4dd98a..97438252 100644 --- a/gemfiles/capybara_2.3_ruby2.2.5.gemfile +++ b/gemfiles/capybara_2.3_ruby2.2.5.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem "mocha", "= 0.13.3" gem "selenium-webdriver", "~> 2.53.0" gem "gem-release", "0.7.4" @@ -10,4 +10,4 @@ gem "rake", "~> 11.0" gem "test-unit", "~> 3.0" gem "capybara", "~> 2.3.0" -gemspec :path=>"../" \ No newline at end of file +gemspec :path => "../" diff --git a/gemfiles/capybara_2.4_ruby2.2.5.gemfile b/gemfiles/capybara_2.4_ruby2.2.5.gemfile index 7b219ce2..ed51a716 100644 --- a/gemfiles/capybara_2.4_ruby2.2.5.gemfile +++ b/gemfiles/capybara_2.4_ruby2.2.5.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem "mocha", "= 0.13.3" gem "selenium-webdriver", "~> 2.53.0" gem "gem-release", "0.7.4" @@ -10,4 +10,4 @@ gem "rake", "~> 11.0" gem "test-unit", "~> 3.0" gem "capybara", "~> 2.4.0" -gemspec :path=>"../" \ No newline at end of file +gemspec :path => "../" diff --git a/gemfiles/capybara_2.5_ruby2.2.5.gemfile b/gemfiles/capybara_2.5_ruby2.2.5.gemfile index de4062db..f03b87c6 100644 --- a/gemfiles/capybara_2.5_ruby2.2.5.gemfile +++ b/gemfiles/capybara_2.5_ruby2.2.5.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem "mocha", "= 0.13.3" gem "selenium-webdriver", "~> 2.53.0" gem "gem-release", "0.7.4" @@ -10,4 +10,4 @@ gem "rake", "~> 11.0" gem "test-unit", "~> 3.0" gem "capybara", "~> 2.5.0" -gemspec :path=>"../" \ No newline at end of file +gemspec :path => "../" diff --git a/gemfiles/capybara_2.6_ruby2.2.5.gemfile b/gemfiles/capybara_2.6_ruby2.2.5.gemfile index 10690b64..be31a30c 100644 --- a/gemfiles/capybara_2.6_ruby2.2.5.gemfile +++ b/gemfiles/capybara_2.6_ruby2.2.5.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem "mocha", "= 0.13.3" gem "selenium-webdriver", "~> 2.53.0" gem "gem-release", "0.7.4" @@ -10,4 +10,4 @@ gem "rake", "~> 11.0" gem "test-unit", "~> 3.0" gem "capybara", "~> 2.6.0" -gemspec :path=>"../" \ No newline at end of file +gemspec :path => "../" diff --git a/gemfiles/capybara_2.7_ruby2.2.5.gemfile b/gemfiles/capybara_2.7_ruby2.2.5.gemfile index 2afd802c..bc33f3d7 100644 --- a/gemfiles/capybara_2.7_ruby2.2.5.gemfile +++ b/gemfiles/capybara_2.7_ruby2.2.5.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem "mocha", "= 0.13.3" gem "selenium-webdriver", "~> 2.53.0" gem "gem-release", "0.7.4" @@ -10,4 +10,4 @@ gem "rake", "~> 11.0" gem "test-unit", "~> 3.0" gem "capybara", "~> 2.7.0" -gemspec :path=>"../" \ No newline at end of file +gemspec :path => "../" diff --git a/lib/ae_page_objects.rb b/lib/ae_page_objects.rb index 87f6679a..965135ba 100644 --- a/lib/ae_page_objects.rb +++ b/lib/ae_page_objects.rb @@ -5,33 +5,9 @@ require 'ae_page_objects/exceptions' module AePageObjects - autoload :Dsl, 'ae_page_objects/core/dsl' - - autoload :InternalHelpers, 'ae_page_objects/util/internal_helpers' - autoload :HashSymbolizer, 'ae_page_objects/util/hash_symbolizer' - - module MultipleWindows - autoload :Browser, 'ae_page_objects/multiple_windows/browser' - autoload :Window, 'ae_page_objects/multiple_windows/window' - autoload :CrossWindowLoaderStrategy, 'ae_page_objects/multiple_windows/cross_window_loader_strategy' - autoload :WindowList, 'ae_page_objects/multiple_windows/window_list' - autoload :WindowHandleManager, 'ae_page_objects/multiple_windows/window_handle_manager' - end - - module SingleWindow - autoload :Browser, 'ae_page_objects/single_window/browser' - autoload :Window, 'ae_page_objects/single_window/window' - autoload :SameWindowLoaderStrategy, 'ae_page_objects/single_window/same_window_loader_strategy' - end - - autoload :DocumentQuery, 'ae_page_objects/document_query' - autoload :DocumentLoader, 'ae_page_objects/document_loader' - autoload :Node, 'ae_page_objects/node' autoload :Document, 'ae_page_objects/document' - autoload :DocumentProxy, 'ae_page_objects/document_proxy' autoload :Element, 'ae_page_objects/element' - autoload :ElementProxy, 'ae_page_objects/element_proxy' autoload :Collection, 'ae_page_objects/elements/collection' autoload :Form, 'ae_page_objects/elements/form' @@ -47,8 +23,10 @@ def browser case driver when Capybara::Selenium::Driver then + require 'ae_page_objects/multiple_windows/browser' MultipleWindows::Browser.new else + require 'ae_page_objects/single_window/browser' SingleWindow::Browser.new end end diff --git a/lib/ae_page_objects/core/dsl.rb b/lib/ae_page_objects/core/dsl.rb index 093b1d7c..bd1ecc05 100644 --- a/lib/ae_page_objects/core/dsl.rb +++ b/lib/ae_page_objects/core/dsl.rb @@ -1,3 +1,6 @@ +require 'ae_page_objects/util/internal_helpers' +require 'ae_page_objects/element_proxy' + module AePageObjects module Dsl include InternalHelpers diff --git a/lib/ae_page_objects/element.rb b/lib/ae_page_objects/element.rb index 6f28f9f2..4d387e40 100644 --- a/lib/ae_page_objects/element.rb +++ b/lib/ae_page_objects/element.rb @@ -1,3 +1,5 @@ +require 'ae_page_objects/util/hash_symbolizer' + module AePageObjects class Element < Node attr_reader :parent diff --git a/lib/ae_page_objects/elements/collection.rb b/lib/ae_page_objects/elements/collection.rb index 3826f99a..dadb3437 100644 --- a/lib/ae_page_objects/elements/collection.rb +++ b/lib/ae_page_objects/elements/collection.rb @@ -1,3 +1,5 @@ +require 'ae_page_objects/element_proxy' + module AePageObjects class Collection < Element include Enumerable diff --git a/lib/ae_page_objects/multiple_windows/browser.rb b/lib/ae_page_objects/multiple_windows/browser.rb index 7c8781b5..15f05e42 100644 --- a/lib/ae_page_objects/multiple_windows/browser.rb +++ b/lib/ae_page_objects/multiple_windows/browser.rb @@ -1,3 +1,10 @@ +require 'ae_page_objects/multiple_windows/cross_window_loader_strategy' +require 'ae_page_objects/multiple_windows/window_list' + +require 'ae_page_objects/document_loader' +require 'ae_page_objects/document_proxy' +require 'ae_page_objects/document_query' + module AePageObjects module MultipleWindows class Browser diff --git a/lib/ae_page_objects/multiple_windows/cross_window_loader_strategy.rb b/lib/ae_page_objects/multiple_windows/cross_window_loader_strategy.rb index 52e34d43..b7cee25f 100644 --- a/lib/ae_page_objects/multiple_windows/cross_window_loader_strategy.rb +++ b/lib/ae_page_objects/multiple_windows/cross_window_loader_strategy.rb @@ -1,3 +1,5 @@ +require 'ae_page_objects/single_window/same_window_loader_strategy' + module AePageObjects module MultipleWindows class CrossWindowLoaderStrategy diff --git a/lib/ae_page_objects/multiple_windows/window.rb b/lib/ae_page_objects/multiple_windows/window.rb index 99456d1e..da4c6448 100644 --- a/lib/ae_page_objects/multiple_windows/window.rb +++ b/lib/ae_page_objects/multiple_windows/window.rb @@ -1,3 +1,7 @@ +require 'ae_page_objects/multiple_windows/window_handle_manager' + +require 'ae_page_objects/single_window/window' + module AePageObjects module MultipleWindows class Window < SingleWindow::Window @@ -25,4 +29,4 @@ def close end end end -end \ No newline at end of file +end diff --git a/lib/ae_page_objects/multiple_windows/window_list.rb b/lib/ae_page_objects/multiple_windows/window_list.rb index 49cefd5a..1f8582ab 100644 --- a/lib/ae_page_objects/multiple_windows/window_list.rb +++ b/lib/ae_page_objects/multiple_windows/window_list.rb @@ -1,3 +1,6 @@ +require 'ae_page_objects/multiple_windows/window_handle_manager' +require 'ae_page_objects/multiple_windows/window' + module AePageObjects module MultipleWindows class WindowList @@ -57,4 +60,4 @@ def window_for(handle) end end end -end \ No newline at end of file +end diff --git a/lib/ae_page_objects/node.rb b/lib/ae_page_objects/node.rb index 3f1234ff..db92f3e9 100644 --- a/lib/ae_page_objects/node.rb +++ b/lib/ae_page_objects/node.rb @@ -1,3 +1,5 @@ +require 'ae_page_objects/core/dsl' + module AePageObjects class Node extend Dsl diff --git a/lib/ae_page_objects/single_window/browser.rb b/lib/ae_page_objects/single_window/browser.rb index 6f6a1e9c..13ad8816 100644 --- a/lib/ae_page_objects/single_window/browser.rb +++ b/lib/ae_page_objects/single_window/browser.rb @@ -1,3 +1,5 @@ +require 'ae_page_objects/single_window/window' + module AePageObjects module SingleWindow class Browser @@ -8,4 +10,4 @@ def initialize end end end -end \ No newline at end of file +end diff --git a/lib/ae_page_objects/single_window/window.rb b/lib/ae_page_objects/single_window/window.rb index 61ffe177..c0f0b548 100644 --- a/lib/ae_page_objects/single_window/window.rb +++ b/lib/ae_page_objects/single_window/window.rb @@ -1,3 +1,9 @@ +require 'ae_page_objects/single_window/same_window_loader_strategy' + +require 'ae_page_objects/document_loader' +require 'ae_page_objects/document_proxy' +require 'ae_page_objects/document_query' + module AePageObjects module SingleWindow class Window diff --git a/test/test_apps/3.0/Gemfile b/test/test_apps/3.0/Gemfile index ea381223..f7b25674 100644 --- a/test/test_apps/3.0/Gemfile +++ b/test/test_apps/3.0/Gemfile @@ -6,7 +6,7 @@ gem 'jquery-rails', '3.1.4' gem "selenium-webdriver", "~> 2.53.0" gem "mocha", "0.13.3", :require => false -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem 'ae_page_objects', :path => "../../../.." diff --git a/test/test_apps/3.0/gemfiles/capybara_2.2_ruby1.9.3.gemfile b/test/test_apps/3.0/gemfiles/capybara_2.2_ruby1.9.3.gemfile index 3bc87a03..8f31d126 100644 --- a/test/test_apps/3.0/gemfiles/capybara_2.2_ruby1.9.3.gemfile +++ b/test/test_apps/3.0/gemfiles/capybara_2.2_ruby1.9.3.gemfile @@ -6,9 +6,9 @@ gem "rails", "3.0.20" gem "sqlite3", "1.3.11" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." gem "rake", "~> 11.0" gem "mime-types", "< 3" gem "capybara", "~> 2.2.0" diff --git a/test/test_apps/3.1/Gemfile b/test/test_apps/3.1/Gemfile index 72f6d784..f9bddb9f 100644 --- a/test/test_apps/3.1/Gemfile +++ b/test/test_apps/3.1/Gemfile @@ -6,11 +6,11 @@ gem 'jquery-rails', '3.1.4' gem "selenium-webdriver", "~> 2.53.0" gem "mocha", "0.13.3", :require => false -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem 'ae_page_objects', :path => "../../../.." -gem 'forum', :path => "../engines" +gem 'forum', :path => "engines" gem 'rake', '~> 11.0' diff --git a/test/test_apps/3.1/gemfiles/capybara_2.2_ruby1.9.3.gemfile b/test/test_apps/3.1/gemfiles/capybara_2.2_ruby1.9.3.gemfile index a275c484..73196675 100644 --- a/test/test_apps/3.1/gemfiles/capybara_2.2_ruby1.9.3.gemfile +++ b/test/test_apps/3.1/gemfiles/capybara_2.2_ruby1.9.3.gemfile @@ -6,10 +6,10 @@ gem "rails", "3.1.12" gem "sqlite3", "1.3.11" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." -gem "forum", :path=>"../engines" +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." +gem "forum", :path => "../engines" gem "rake", "~> 11.0" gem "mime-types", "< 3" gem "capybara", "~> 2.2.0" diff --git a/test/test_apps/3.2/Gemfile b/test/test_apps/3.2/Gemfile index b721d903..4eda3b7f 100644 --- a/test/test_apps/3.2/Gemfile +++ b/test/test_apps/3.2/Gemfile @@ -6,11 +6,11 @@ gem 'jquery-rails', '3.1.4' gem "selenium-webdriver", "~> 2.53.0" gem "mocha", "0.13.3", :require => false -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem 'ae_page_objects', :path => "../../../.." -gem 'forum', :path => "../engines" +gem 'forum', :path => "engines" gem 'rake', '~> 11.0' diff --git a/test/test_apps/3.2/gemfiles/capybara_2.2_ruby2.2.5.gemfile b/test/test_apps/3.2/gemfiles/capybara_2.2_ruby2.2.5.gemfile index b82812aa..de00790c 100644 --- a/test/test_apps/3.2/gemfiles/capybara_2.2_ruby2.2.5.gemfile +++ b/test/test_apps/3.2/gemfiles/capybara_2.2_ruby2.2.5.gemfile @@ -6,11 +6,10 @@ gem "rails", "3.2.13" gem "sqlite3", "1.3.11" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." -gem "forum", :path=>"../engines" +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." +gem "forum", :path => "../engines" gem "rake", "~> 11.0" gem "test-unit" gem "capybara", "~> 2.2.0" - diff --git a/test/test_apps/4.0/Gemfile b/test/test_apps/4.0/Gemfile index 1f5746bb..8e14d1fa 100644 --- a/test/test_apps/4.0/Gemfile +++ b/test/test_apps/4.0/Gemfile @@ -12,7 +12,7 @@ gem 'jquery-rails', '3.1.4' gem "selenium-webdriver", "~> 2.53.0" gem "mocha", "0.13.3", :require => false -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem 'ae_page_objects', :path => "../../../.." @@ -28,5 +28,5 @@ gem 'turbolinks', '2.5.3' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 1.2' -gem 'forum', :path => "../engines" +gem 'forum', :path => "engines" diff --git a/test/test_apps/4.0/gemfiles/capybara_2.2_ruby2.2.5.gemfile b/test/test_apps/4.0/gemfiles/capybara_2.2_ruby2.2.5.gemfile index 10055939..10123c02 100644 --- a/test/test_apps/4.0/gemfiles/capybara_2.2_ruby2.2.5.gemfile +++ b/test/test_apps/4.0/gemfiles/capybara_2.2_ruby2.2.5.gemfile @@ -7,13 +7,12 @@ gem "sqlite3", "1.3.11" gem "sass-rails", "~> 4.0.2" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." gem "uglifier", ">= 1.3.0" gem "coffee-rails", "~> 4.0.0" gem "turbolinks", "2.5.3" gem "jbuilder", "~> 1.2" -gem "forum", :path=>"../engines" +gem "forum", :path => "../engines" gem "capybara", "~> 2.2.0" - diff --git a/test/test_apps/4.1/Gemfile b/test/test_apps/4.1/Gemfile index dc0d2d03..6dd556c1 100644 --- a/test/test_apps/4.1/Gemfile +++ b/test/test_apps/4.1/Gemfile @@ -12,7 +12,7 @@ gem 'jquery-rails', '3.1.4' gem "selenium-webdriver", "~> 2.53.0" gem "mocha", "0.13.3", :require => false -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem 'ae_page_objects', :path => "../../../.." @@ -28,4 +28,4 @@ gem 'turbolinks', '2.5.3' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 1.2' -gem 'forum', :path => "../engines" +gem 'forum', :path => "engines" diff --git a/test/test_apps/4.1/gemfiles/capybara_2.2_ruby2.2.5.gemfile b/test/test_apps/4.1/gemfiles/capybara_2.2_ruby2.2.5.gemfile index 42fc8958..2801518a 100644 --- a/test/test_apps/4.1/gemfiles/capybara_2.2_ruby2.2.5.gemfile +++ b/test/test_apps/4.1/gemfiles/capybara_2.2_ruby2.2.5.gemfile @@ -7,13 +7,12 @@ gem "sqlite3", "1.3.11" gem "sass-rails", "~> 4.0.2" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." gem "uglifier", ">= 1.3.0" gem "coffee-rails", "~> 4.0.0" gem "turbolinks", "2.5.3" gem "jbuilder", "~> 1.2" -gem "forum", :path=>"../engines" +gem "forum", :path => "../engines" gem "capybara", "~> 2.2.0" - diff --git a/test/test_apps/4.2/Gemfile b/test/test_apps/4.2/Gemfile index 01b7a826..4942dec9 100644 --- a/test/test_apps/4.2/Gemfile +++ b/test/test_apps/4.2/Gemfile @@ -12,7 +12,7 @@ gem 'jquery-rails', '3.1.4' gem "selenium-webdriver", "~> 2.53.0" gem "mocha", "0.13.3", :require => false -gem "appraisal", "~> 0.5.1" +gem "appraisal", "~> 2.0" gem 'ae_page_objects', :path => "../../../.." @@ -28,4 +28,4 @@ gem 'turbolinks', '2.5.3' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 1.2' -gem 'forum', :path => "../engines" +gem 'forum', :path => "engines" diff --git a/test/test_apps/4.2/gemfiles/capybara_2.1_ruby2.2.5.gemfile b/test/test_apps/4.2/gemfiles/capybara_2.1_ruby2.2.5.gemfile index adb6e233..734ed65a 100644 --- a/test/test_apps/4.2/gemfiles/capybara_2.1_ruby2.2.5.gemfile +++ b/test/test_apps/4.2/gemfiles/capybara_2.1_ruby2.2.5.gemfile @@ -7,13 +7,12 @@ gem "sqlite3", "1.3.11" gem "sass-rails", "~> 4.0.2" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." gem "uglifier", ">= 1.3.0" gem "coffee-rails", "~> 4.0.0" gem "turbolinks", "2.5.3" gem "jbuilder", "~> 1.2" -gem "forum", :path=>"../engines" +gem "forum", :path => "../engines" gem "capybara", "~> 2.1.0" - diff --git a/test/test_apps/4.2/gemfiles/capybara_2.2_ruby2.2.5.gemfile b/test/test_apps/4.2/gemfiles/capybara_2.2_ruby2.2.5.gemfile index 4d0a3f69..ac2a77fa 100644 --- a/test/test_apps/4.2/gemfiles/capybara_2.2_ruby2.2.5.gemfile +++ b/test/test_apps/4.2/gemfiles/capybara_2.2_ruby2.2.5.gemfile @@ -7,13 +7,12 @@ gem "sqlite3", "1.3.11" gem "sass-rails", "~> 4.0.2" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." gem "uglifier", ">= 1.3.0" gem "coffee-rails", "~> 4.0.0" gem "turbolinks", "2.5.3" gem "jbuilder", "~> 1.2" -gem "forum", :path=>"../engines" +gem "forum", :path => "../engines" gem "capybara", "~> 2.2.0" - diff --git a/test/test_apps/4.2/gemfiles/capybara_2.3_ruby2.2.5.gemfile b/test/test_apps/4.2/gemfiles/capybara_2.3_ruby2.2.5.gemfile index 31d1be98..beaeb30a 100644 --- a/test/test_apps/4.2/gemfiles/capybara_2.3_ruby2.2.5.gemfile +++ b/test/test_apps/4.2/gemfiles/capybara_2.3_ruby2.2.5.gemfile @@ -7,13 +7,12 @@ gem "sqlite3", "1.3.11" gem "sass-rails", "~> 4.0.2" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." gem "uglifier", ">= 1.3.0" gem "coffee-rails", "~> 4.0.0" gem "turbolinks", "2.5.3" gem "jbuilder", "~> 1.2" -gem "forum", :path=>"../engines" +gem "forum", :path => "../engines" gem "capybara", "~> 2.3.0" - diff --git a/test/test_apps/4.2/gemfiles/capybara_2.4_ruby2.2.5.gemfile b/test/test_apps/4.2/gemfiles/capybara_2.4_ruby2.2.5.gemfile index a2b21c17..6d239000 100644 --- a/test/test_apps/4.2/gemfiles/capybara_2.4_ruby2.2.5.gemfile +++ b/test/test_apps/4.2/gemfiles/capybara_2.4_ruby2.2.5.gemfile @@ -7,13 +7,12 @@ gem "sqlite3", "1.3.11" gem "sass-rails", "~> 4.0.2" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." gem "uglifier", ">= 1.3.0" gem "coffee-rails", "~> 4.0.0" gem "turbolinks", "2.5.3" gem "jbuilder", "~> 1.2" -gem "forum", :path=>"../engines" +gem "forum", :path => "../engines" gem "capybara", "~> 2.4.0" - diff --git a/test/test_apps/4.2/gemfiles/capybara_2.5_ruby2.2.5.gemfile b/test/test_apps/4.2/gemfiles/capybara_2.5_ruby2.2.5.gemfile index b54f1aa7..2380b472 100644 --- a/test/test_apps/4.2/gemfiles/capybara_2.5_ruby2.2.5.gemfile +++ b/test/test_apps/4.2/gemfiles/capybara_2.5_ruby2.2.5.gemfile @@ -7,13 +7,12 @@ gem "sqlite3", "1.3.11" gem "sass-rails", "~> 4.0.2" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." gem "uglifier", ">= 1.3.0" gem "coffee-rails", "~> 4.0.0" gem "turbolinks", "2.5.3" gem "jbuilder", "~> 1.2" -gem "forum", :path=>"../engines" +gem "forum", :path => "../engines" gem "capybara", "~> 2.5.0" - diff --git a/test/test_apps/4.2/gemfiles/capybara_2.6_ruby2.2.5.gemfile b/test/test_apps/4.2/gemfiles/capybara_2.6_ruby2.2.5.gemfile index 089ef4ec..a0ef833f 100644 --- a/test/test_apps/4.2/gemfiles/capybara_2.6_ruby2.2.5.gemfile +++ b/test/test_apps/4.2/gemfiles/capybara_2.6_ruby2.2.5.gemfile @@ -7,13 +7,12 @@ gem "sqlite3", "1.3.11" gem "sass-rails", "~> 4.0.2" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." gem "uglifier", ">= 1.3.0" gem "coffee-rails", "~> 4.0.0" gem "turbolinks", "2.5.3" gem "jbuilder", "~> 1.2" -gem "forum", :path=>"../engines" +gem "forum", :path => "../engines" gem "capybara", "~> 2.6.0" - diff --git a/test/test_apps/4.2/gemfiles/capybara_2.7_ruby2.2.5.gemfile b/test/test_apps/4.2/gemfiles/capybara_2.7_ruby2.2.5.gemfile index aee76f8a..9441bc01 100644 --- a/test/test_apps/4.2/gemfiles/capybara_2.7_ruby2.2.5.gemfile +++ b/test/test_apps/4.2/gemfiles/capybara_2.7_ruby2.2.5.gemfile @@ -7,13 +7,12 @@ gem "sqlite3", "1.3.11" gem "sass-rails", "~> 4.0.2" gem "jquery-rails", "3.1.4" gem "selenium-webdriver", "~> 2.53.0" -gem "mocha", "0.13.3", :require=>false -gem "appraisal", "~> 0.5.1" -gem "ae_page_objects", :path=>"../../../.." +gem "mocha", "0.13.3", :require => false +gem "appraisal", "~> 2.0" +gem "ae_page_objects", :path => "../../../../.." gem "uglifier", ">= 1.3.0" gem "coffee-rails", "~> 4.0.0" gem "turbolinks", "2.5.3" gem "jbuilder", "~> 1.2" -gem "forum", :path=>"../engines" +gem "forum", :path => "../engines" gem "capybara", "~> 2.7.0" - diff --git a/test/test_apps/engines b/test/test_apps/engines deleted file mode 120000 index 88bfffb6..00000000 --- a/test/test_apps/engines +++ /dev/null @@ -1 +0,0 @@ -shared/engines/ \ No newline at end of file diff --git a/test/test_apps/shared/test/selenium/page_object_integration_test.rb b/test/test_apps/shared/test/selenium/page_object_integration_test.rb index 41cbf445..13def359 100644 --- a/test/test_apps/shared/test/selenium/page_object_integration_test.rb +++ b/test/test_apps/shared/test/selenium/page_object_integration_test.rb @@ -76,7 +76,7 @@ def test_document_proxy # test an explicit cast new_page = result_page.as_a(PageObjects::Books::NewPage) - assert_include new_page.form.error_messages, "Title can't be blank" + assert_includes new_page.form.error_messages, "Title can't be blank" new_page.title.set "Hello World" @@ -177,8 +177,8 @@ def test_element_proxy Capybara.using_wait_time(1) do assert author.rating.star.present? assert author.rating.star.visible? - assert_false author.rating.star.absent? - assert_false author.rating.star.hidden? + refute author.rating.star.absent? + refute author.rating.star.hidden? end assert_nothing_raised do @@ -192,19 +192,19 @@ def test_element_proxy Capybara.using_wait_time(1) do author.rating.hide_star assert author.rating.star.present? - assert_false author.rating.star.visible? - assert_false author.rating.star.absent? + refute author.rating.star.visible? + refute author.rating.star.absent? assert author.rating.star.hidden? author.rating.show_star assert author.rating.star.present? assert author.rating.star.visible? - assert_false author.rating.star.absent? - assert_false author.rating.star.hidden? + refute author.rating.star.absent? + refute author.rating.star.hidden? author.rating.remove_star - assert_false author.rating.star.present? - assert_false author.rating.star.visible? + refute author.rating.star.present? + refute author.rating.star.visible? assert author.rating.star.absent? assert author.rating.star.hidden? end @@ -235,7 +235,7 @@ def test_element_proxy__present_absent_present def test_element_proxy__not_present author = PageObjects::Authors::NewPage.visit - assert_false author.missing.present? + refute author.missing.present? assert author.missing.absent? assert_nothing_raised do @@ -254,15 +254,15 @@ def test_element_proxy__nested author.nested_rating.hide_star assert author.nested_rating.star.present? - assert_false author.nested_rating.star.visible? + refute author.nested_rating.star.visible? author.nested_rating.show_star assert author.nested_rating.star.present? assert author.nested_rating.star.visible? author.nested_rating.remove_star - assert_false author.nested_rating.star.present? - assert_false author.nested_rating.star.visible? + refute author.nested_rating.star.present? + refute author.nested_rating.star.visible? end end @@ -301,36 +301,36 @@ def test_some_collection_enumerables def test_document_tracking author = PageObjects::Authors::NewPage.visit - assert_false author.stale? + refute author.stale? visit("/books/new") - assert_false author.stale? + refute author.stale? book = PageObjects::Books::NewPage.new assert author.stale? - assert_false book.stale? + refute book.stale? author = PageObjects::Authors::NewPage.visit - assert_false author.stale? + refute author.stale? assert book.stale? book = PageObjects::Books::NewPage.visit assert author.stale? - assert_false book.stale? + refute book.stale? author = PageObjects::Authors::NewPage.visit - assert_false author.stale? + refute author.stale? assert book.stale? visit("/authors/new") - assert_false author.stale? + refute author.stale? assert book.stale? assert_raises AePageObjects::LoadingPageFailed do PageObjects::Books::NewPage.new end - assert_false author.stale? + refute author.stale? assert book.stale? end @@ -367,14 +367,14 @@ def test_document_tracking__multiple_windows window2_authors_robert_row = window2_authors.authors.first.show! assert_equal window2, window2_authors_robert_row.window assert window2_authors.stale? - assert_false window1_author_robert.stale? + refute window1_author_robert.stale? window2.close assert window2_author_robert.stale? assert_equal nil, window2.current_document assert_windows(window1, :current => window1) - assert_false window1_author_robert.stale? + refute window1_author_robert.stale? assert_equal window1_author_robert, window1.current_document # close a window without an explicit switch @@ -393,7 +393,7 @@ def test_document_tracking__multiple_windows assert_equal nil, window1.current_document assert_windows(window3, :current => window3) - assert_false window3_author_robert.stale? + refute window3_author_robert.stale? assert_equal window3_author_robert, window3.current_document # attempt to close the last window diff --git a/test/test_apps/shared/test/selenium_helper.rb b/test/test_apps/shared/test/selenium_helper.rb index 14af51a7..cb7bc46a 100644 --- a/test/test_apps/shared/test/selenium_helper.rb +++ b/test/test_apps/shared/test/selenium_helper.rb @@ -12,12 +12,9 @@ require 'capybara/dsl' require 'capybara/rails' -Dir["../../test_helpers/**/*.rb"].each {|f| require f} - module Selenium class TestCase < ActiveSupport::TestCase include Capybara::DSL - include AfCruft self.use_instantiated_fixtures = false self.use_transactional_fixtures = false diff --git a/test/test_helpers/af_cruft.rb b/test/test_helpers/af_cruft.rb deleted file mode 100644 index 0db6b383..00000000 --- a/test/test_helpers/af_cruft.rb +++ /dev/null @@ -1,44 +0,0 @@ -module AfCruft - def assert_sets_equal(expected, actual) - missing = expected.reject{|value| actual.include?(value)} - missing.map! do |o| - if expected.respond_to? :index - "#{expected.index(o)} - #{o.inspect}" - else - o.inspect - end - end - - extra = actual.reject{|value| expected.include?(value)} - extra.map! do |o| - if actual.respond_to? :index - "#{actual.index(o)} - #{o.inspect}" - else - o.inspect - end - end - - errors = [] - errors << "The following items were expected, but not found: #{missing.inspect}" unless missing.empty? - errors << "The following items were found, but not expected: #{extra.inspect}" unless extra.empty? - flunk errors.join("\n") unless errors.empty? - - if expected.respond_to? :uniq - expected.uniq.each do |item| - expected_number = expected.inject(0) {|result, i| i == item ? result + 1 : result} - actual_number = actual.inject(0) {|result, i| i == item ? result + 1 : result} - flunk "Item #{item.inspect} was expected #{expected_number} time#{expected_number != 1 ? "s" : ""}, but was found #{actual_number} time#{actual_number != 1 ? "s" : ""}" if expected_number != actual_number - end - end - end - - def assert_false(thingy, message = nil) - assert_equal false, thingy, message - end - - def assert_include(obj, included) - unless obj.include?(included) - flunk "Expected #{obj.inspect} to include #{included.inspect}, but was not found." - end - end -end diff --git a/test/unit/document_loader_test.rb b/test/unit/document_loader_test.rb index 524528a6..c9065eef 100644 --- a/test/unit/document_loader_test.rb +++ b/test/unit/document_loader_test.rb @@ -1,5 +1,7 @@ require 'unit_helper' +require 'ae_page_objects/document_loader' + module AePageObjects class DocumentLoaderTest < AePageObjectsTestCase diff --git a/test/unit/document_proxy_test.rb b/test/unit/document_proxy_test.rb index 06769551..14afccce 100644 --- a/test/unit/document_proxy_test.rb +++ b/test/unit/document_proxy_test.rb @@ -1,5 +1,7 @@ require 'unit_helper' +require 'ae_page_objects/document_proxy' + module AePageObjects class DocumentProxyTest < AePageObjectsTestCase diff --git a/test/unit/document_query_test.rb b/test/unit/document_query_test.rb index 1d4646e7..d982945d 100644 --- a/test/unit/document_query_test.rb +++ b/test/unit/document_query_test.rb @@ -1,5 +1,7 @@ require 'unit_helper' +require 'ae_page_objects/document_query' + module AePageObjects class DocumentQueryTest < AePageObjectsTestCase diff --git a/test/unit/document_test.rb b/test/unit/document_test.rb index ee00afeb..56d0a4ae 100644 --- a/test/unit/document_test.rb +++ b/test/unit/document_test.rb @@ -79,7 +79,7 @@ def test_stale kitty_page = kitty_class.new assert_equal capybara_stub.session, kitty_page.node - assert_false kitty_page.stale? + refute kitty_page.stale? kitty_page.stale! assert kitty_page.stale? diff --git a/test/unit/dsl/collection_test.rb b/test/unit/dsl/collection_test.rb index 9f4cdf18..dc0d66f2 100644 --- a/test/unit/dsl/collection_test.rb +++ b/test/unit/dsl/collection_test.rb @@ -429,8 +429,8 @@ def test_nested_element__locator__proc private def verify_kitty_structure(kitty_class) - assert_sets_equal [:previous_owners], kitty_class.element_attributes.keys - assert_sets_equal [:owner_name, :kitty_name_during_ownership], kitty_class.element_attributes[:previous_owners].item_class.element_attributes.keys + assert_equal [:previous_owners], kitty_class.element_attributes.keys + assert_equal [:kitty_name_during_ownership, :owner_name], kitty_class.element_attributes[:previous_owners].item_class.element_attributes.keys.sort end end end diff --git a/test/unit/dsl/element_test.rb b/test/unit/dsl/element_test.rb index eea05854..20036c5e 100644 --- a/test/unit/dsl/element_test.rb +++ b/test/unit/dsl/element_test.rb @@ -9,7 +9,7 @@ def test_element__basic end assert kitty.method_defined?(:kind) - assert_sets_equal [:kind], kitty.element_attributes.keys + assert_equal [:kind], kitty.element_attributes.keys stub_current_window jon = kitty.new @@ -25,7 +25,7 @@ def test_element__locator end assert kitty.method_defined?(:kind) - assert_sets_equal [:kind], kitty.element_attributes.keys + assert_equal [:kind], kitty.element_attributes.keys stub_current_window @@ -42,7 +42,7 @@ def test_element__locator__proc end assert kitty.method_defined?(:kind) - assert_sets_equal [:kind], kitty.element_attributes.keys + assert_equal [:kind], kitty.element_attributes.keys stub_current_window @@ -60,7 +60,7 @@ def test_element__is__select end assert kitty.method_defined?(:kind) - assert_sets_equal [:kind], kitty.element_attributes.keys + assert_equal [:kind], kitty.element_attributes.keys stub_current_window @@ -77,7 +77,7 @@ def test_element__is__checkbox end assert kitty.method_defined?(:kind) - assert_sets_equal [:kind], kitty.element_attributes.keys + assert_equal [:kind], kitty.element_attributes.keys stub_current_window @@ -96,7 +96,7 @@ def test_element__is__special_widget end assert kitty.method_defined?(:kind) - assert_sets_equal [:kind], kitty.element_attributes.keys + assert_equal [:kind], kitty.element_attributes.keys stub_current_window @@ -116,7 +116,7 @@ def test_element__is__special_widget__with_locator end assert kitty.method_defined?(:kind) - assert_sets_equal [:kind], kitty.element_attributes.keys + assert_equal [:kind], kitty.element_attributes.keys stub_current_window @@ -362,11 +362,11 @@ def grow! private def verify_kitty_structure(kitty_class) - assert_sets_equal [:tail], kitty_class.element_attributes.keys - assert_sets_equal [:color, :size], kitty_class.element_attributes[:tail].element_attributes.keys + assert_equal [:tail], kitty_class.element_attributes.keys + assert_equal [:color, :size], kitty_class.element_attributes[:tail].element_attributes.keys.sort size_class = kitty_class.element_attributes[:tail].element_attributes[:size] - assert_sets_equal [:length, :width], size_class.element_attributes.keys + assert_equal [:length, :width], size_class.element_attributes.keys.sort assert_include size_class.instance_methods(false).map(&:to_s), "grow!" end end diff --git a/test/unit/element_proxy_test.rb b/test/unit/element_proxy_test.rb index c391a532..8937f14a 100644 --- a/test/unit/element_proxy_test.rb +++ b/test/unit/element_proxy_test.rb @@ -15,7 +15,7 @@ def test_respond_to_can_find_methods_without_element_not_found assert proxy.respond_to?(:class) assert proxy.respond_to?(:presence) assert proxy.respond_to?(:__full_name__) - assert_false proxy.respond_to?(:whiz_bang!) + refute proxy.respond_to?(:whiz_bang!) end def test_initialize__no_block @@ -48,14 +48,14 @@ def test_visible__false element_class.expect_new element_class.any_instance.expects(:visible?).returns(false) - assert_false proxy.visible? + refute proxy.visible? end def test_visible__element_not_found proxy = new_proxy element_class.expects(:new).raises(AePageObjects::LoadingElementFailed) - assert_false proxy.visible? + refute proxy.visible? end def test_hidden @@ -88,7 +88,7 @@ def test_present__element_not_found proxy = new_proxy element_class.expects(:new).raises(AePageObjects::LoadingElementFailed) - assert_false proxy.present? + refute proxy.present? end def test_absent @@ -96,7 +96,7 @@ def test_absent element_class.expect_new - assert_false proxy.absent? + refute proxy.absent? end def test_absent__element_not_found @@ -275,7 +275,7 @@ def assert_is_proxy(proxy) def assert_is_element(element) assert element.is_a?(element_class) - assert_false element.is_a?(ElementProxy) + refute element.is_a?(ElementProxy) end end end diff --git a/test/unit/element_test.rb b/test/unit/element_test.rb index 68699a4d..e32143eb 100644 --- a/test/unit/element_test.rb +++ b/test/unit/element_test.rb @@ -35,7 +35,7 @@ def test_new assert_equal kitty_page_object, kitty.node assert_equal nil, kitty.full_name assert_equal nil, kitty.name - assert_false kitty.using_default_locator? + refute kitty.using_default_locator? end def test_new__with_name @@ -73,7 +73,7 @@ def test_new__locator assert_equal kitty_page_object, kitty.node assert_equal "tiger", kitty.full_name assert_equal "tiger", kitty.name - assert_false kitty.using_default_locator? + refute kitty.using_default_locator? end def test_document @@ -134,7 +134,7 @@ def test_stale kitty_element = kitty_class.new(pet, :locator => '#tiger') assert_equal kitty_capybara_node, kitty_element.node - assert_false kitty_element.stale? + refute kitty_element.stale? kitty_element.stale! assert kitty_element.stale? diff --git a/test/unit/form_dsl_test.rb b/test/unit/form_dsl_test.rb index 4e118883..0785b7b4 100644 --- a/test/unit/form_dsl_test.rb +++ b/test/unit/form_dsl_test.rb @@ -141,16 +141,16 @@ def verify_top_level_form_field(kitty, field_method, document_stub, &prepare_for end def verify_kitty_structure(kitty_class) - assert_sets_equal [:kitty, :name, :age, :owner, :past_lives], kitty_class.element_attributes.keys - assert_sets_equal [:name, :age, :owner, :past_lives], kitty_class.element_attributes[:kitty].element_attributes.keys + assert_equal [:age, :kitty, :name, :owner, :past_lives], kitty_class.element_attributes.keys.sort + assert_equal [:age, :name, :owner, :past_lives], kitty_class.element_attributes[:kitty].element_attributes.keys.sort owner_class = kitty_class.element_attributes[:kitty].element_attributes[:owner] - assert_sets_equal [:name], owner_class.element_attributes.keys + assert_equal [:name], owner_class.element_attributes.keys past_lives_item_class = kitty_class.element_attributes[:kitty].element_attributes[:past_lives].item_class - assert_sets_equal [:died_at], past_lives_item_class.element_attributes.keys + assert_equal [:died_at], past_lives_item_class.element_attributes.keys - assert_sets_equal ["kitty", "owner", "age", "name", "past_lives"].map(&:to_sym), kitty_class.public_instance_methods(false).map(&:to_sym) + assert_equal [:age, :kitty, :name, :owner, :past_lives], kitty_class.public_instance_methods(false).map(&:to_sym).sort end end end diff --git a/test/unit/multiple_windows/browser_test.rb b/test/unit/multiple_windows/browser_test.rb index 36860c9e..db3b643c 100644 --- a/test/unit/multiple_windows/browser_test.rb +++ b/test/unit/multiple_windows/browser_test.rb @@ -1,5 +1,12 @@ require 'unit_helper' +require 'ae_page_objects/multiple_windows/browser' +require 'ae_page_objects/multiple_windows/cross_window_loader_strategy' + +require 'ae_page_objects/document_loader' +require 'ae_page_objects/document_proxy' +require 'ae_page_objects/document_query' + module AePageObjects module MultipleWindows class BrowserTest < AePageObjectsTestCase diff --git a/test/unit/multiple_windows/cross_window_loader_strategy_test.rb b/test/unit/multiple_windows/cross_window_loader_strategy_test.rb index 732b3654..09a911fc 100644 --- a/test/unit/multiple_windows/cross_window_loader_strategy_test.rb +++ b/test/unit/multiple_windows/cross_window_loader_strategy_test.rb @@ -1,5 +1,10 @@ require 'unit_helper' +require 'ae_page_objects/multiple_windows/cross_window_loader_strategy' +require 'ae_page_objects/multiple_windows/window_list' + +require 'ae_page_objects/document_query' + module AePageObjects module MultipleWindows class CrossWindowLoaderStrategyTest < AePageObjectsTestCase diff --git a/test/unit/multiple_windows/window_handle_manager_test.rb b/test/unit/multiple_windows/window_handle_manager_test.rb index abc9e580..92770888 100644 --- a/test/unit/multiple_windows/window_handle_manager_test.rb +++ b/test/unit/multiple_windows/window_handle_manager_test.rb @@ -1,5 +1,7 @@ require 'unit_helper' +require 'ae_page_objects/multiple_windows/window_handle_manager' + module AePageObjects module MultipleWindows class WindowHandleManagerTest < AePageObjectsTestCase diff --git a/test/unit/multiple_windows/window_list_test.rb b/test/unit/multiple_windows/window_list_test.rb index 276dc0e7..6b914557 100644 --- a/test/unit/multiple_windows/window_list_test.rb +++ b/test/unit/multiple_windows/window_list_test.rb @@ -1,5 +1,8 @@ require 'unit_helper' +require 'ae_page_objects/multiple_windows/window_list' +require 'ae_page_objects/multiple_windows/window_handle_manager' + module AePageObjects module MultipleWindows class WindowListTest < AePageObjectsTestCase diff --git a/test/unit/multiple_windows/window_test.rb b/test/unit/multiple_windows/window_test.rb index 80d4f1cc..f203cc0a 100644 --- a/test/unit/multiple_windows/window_test.rb +++ b/test/unit/multiple_windows/window_test.rb @@ -1,5 +1,8 @@ require 'unit_helper' +require 'ae_page_objects/multiple_windows/window' +require 'ae_page_objects/multiple_windows/window_handle_manager' + module AePageObjects module MultipleWindows class WindowTest < AePageObjectsTestCase diff --git a/test/unit/single_window/same_window_loader_strategy_test.rb b/test/unit/single_window/same_window_loader_strategy_test.rb index 0313ca28..669a3c6c 100644 --- a/test/unit/single_window/same_window_loader_strategy_test.rb +++ b/test/unit/single_window/same_window_loader_strategy_test.rb @@ -1,5 +1,11 @@ require 'unit_helper' +require 'ae_page_objects/single_window/same_window_loader_strategy' + +require 'ae_page_objects/document_loader' +require 'ae_page_objects/document_proxy' +require 'ae_page_objects/document_query' + module AePageObjects module SingleWindow class SameWindowLoaderStrategyTest < AePageObjectsTestCase diff --git a/test/unit/single_window/window_test.rb b/test/unit/single_window/window_test.rb index b860b6b6..f6bbbdce 100644 --- a/test/unit/single_window/window_test.rb +++ b/test/unit/single_window/window_test.rb @@ -1,5 +1,7 @@ require 'unit_helper' +require 'ae_page_objects/single_window/window' + module AePageObjects module SingleWindow class WindowTest < AePageObjectsTestCase diff --git a/test/unit_helper.rb b/test/unit_helper.rb index 9c978749..b8b97a38 100644 --- a/test/unit_helper.rb +++ b/test/unit_helper.rb @@ -1,11 +1,7 @@ -$LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib') -$LOAD_PATH << File.join(File.dirname(__FILE__), '..') -$LOAD_PATH << File.join(File.dirname(__FILE__)) - -require 'rubygems' +require 'ae_page_objects' require 'selenium-webdriver' -require 'ae_page_objects' + require 'test/unit' require "mocha/setup" @@ -13,7 +9,6 @@ class AePageObjectsTestCase < Test::Unit::TestCase include NodeFieldTestHelpers - include AfCruft undef_method :default_test if method_defined?(:default_test) @@ -29,6 +24,8 @@ def reset_browser end def stub_current_window + require 'ae_page_objects/multiple_windows/window_handle_manager' + capybara_stub AePageObjects::MultipleWindows::WindowHandleManager.stubs(:current).returns("window_handle") end