Commit 33c745fc by Vi Huynh

fix step rspec

parent 6c7e97e6
--color --format documentation -r turnip/rspec
source 'https://rubygems.org'
group :development, :test do
gem 'byebug'
gem 'pry-byebug'
gem 'pry-rails'
# gem 'rspec-rails'
# gem 'capybara-webkit'
gem 'selenium-webdriver'
gem 'capybara-webkit'
gem 'poltergeist', '1.6.0'
gem 'turnip'
# gem 'spork'
......
GEM
remote: https://rubygems.org/
specs:
byebug (5.0.0)
columnize (= 0.9.0)
capybara (2.4.4)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (~> 2.0)
capybara-webkit (1.7.0)
capybara (>= 2.3.0, < 2.6.0)
json
celluloid (0.16.0)
timers (~> 4.0.0)
childprocess (0.5.6)
ffi (~> 1.0, >= 1.0.11)
cliver (0.3.2)
coderay (1.1.0)
columnize (0.9.0)
diff-lcs (1.2.5)
ffi (1.9.6)
formatador (0.2.5)
......@@ -23,6 +31,7 @@ GEM
pry (>= 0.9.12)
thor (>= 0.18.1)
hitimes (1.2.2)
json (1.8.3)
listen (2.7.11)
celluloid (>= 0.15.2)
rb-fsevent (>= 0.9.3)
......@@ -43,6 +52,11 @@ GEM
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
pry-byebug (3.2.0)
byebug (~> 5.0)
pry (~> 0.10)
pry-rails (0.3.4)
pry (>= 0.9.10)
rack (1.6.4)
rack-test (0.6.3)
rack (>= 1.0)
......@@ -61,6 +75,12 @@ GEM
rspec-mocks (3.1.3)
rspec-support (~> 3.1.0)
rspec-support (3.1.2)
rubyzip (1.1.7)
selenium-webdriver (2.47.1)
childprocess (~> 0.5)
multi_json (~> 1.0)
rubyzip (~> 1.0)
websocket (~> 1.0)
slop (3.6.0)
thor (0.19.1)
timers (4.0.1)
......@@ -68,6 +88,7 @@ GEM
turnip (1.2.4)
gherkin (>= 2.5)
rspec (>= 2.14.0, < 4.0)
websocket (1.2.2)
websocket-driver (0.6.2)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2)
......@@ -78,8 +99,13 @@ PLATFORMS
ruby
DEPENDENCIES
byebug
capybara-webkit
guard
poltergeist (= 1.6.0)
pry-byebug
pry-rails
selenium-webdriver
turnip
BUNDLED WITH
......
......@@ -5,6 +5,8 @@ cd phantomjs
git checkout 2.0
echo y | ./build.sh
ln -s /home/vagrant/phantomjs/bin/phantomjs /usr/local/bin/phantomjs
# run phantomjs
$ phantomjs
cd ..
# How to run test
......
Feature: page
Scenario: visit top page
Given access host
When visit '/'
Then response code is '200'
# And response include 'じげんQUEST!をもう一度ご確認の上 アクセスしてください。'
# And response 'strong' include 'じげんQUEST!'
# And page title with 'じげんQUES'
# And meta 'description' with '【もれなくお祝い金1万円】がもらえる!アルバイトEXはアルバイト・バイト求人情報や募集情報を日本最大級掲載!日本全国の主要なアルバイト・バイト募集サイトを一括して検索が可能。現金1万円がもらえる!!'
Scenario: visit '/zigexn'
Given access host
When visit '/zigexn'
Then response code is '403'
And response include '403 Forbidden 指定されたページ(URL)へのアクセスが禁止されています。'
Scenario: Login with super_admin
Given logged with supper_admin
Then response code is '200'
And response include 'Company'
Scenario: Check locale
Given logged with supper_admin
When visit '/admin/managements/users'
Then response include 'User'
require 'pry-byebug'
driver = ENV['DRIVER'].to_s.to_sym
Dir.glob("spec/steps/*_steps.rb") { |f| load f, true }
require 'capybara/dsl'
require 'capybara/rspec'
require 'capybara/poltergeist'
require 'turnip'
require 'turnip/capybara'
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app,
if driver == :sauce
configure_sauce
Capybara.default_driver = :sauce
Capybara.javascript_driver = :selenium
elsif driver == :poltergeist
require 'capybara/poltergeist'
Capybara.default_driver = :poltergeist
Capybara.current_driver = :poltergeist
Capybara.javascript_driver = :poltergeist
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(
app,
phantomjs: 'phantomjs',
js_errors: false,
debug: false,
phantomjs_options: ['--load-images=no', '--disk-cache=true'],
timeout: 10
)
end
elsif driver.nil?
require 'capybara/poltergeist'
Capybara.default_driver = :rack_test
Capybara.current_driver = :rack_test
Capybara.javascript_driver = :poltergeist
else
require 'selenium-webdriver'
Capybara.default_driver = :selenium
Capybara.javascript_driver = :selenium
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, browser: driver)
end
end
Capybara.run_server = false
Capybara.default_driver = :poltergeist
Capybara.javascript_driver = :poltergeist
# Capybara.default_driver = :webkit
RSpec.configure do |config|
end
step 'access production' do
Capybara.app_host = 'http://arubaito-ex.jp'
end
step 'access production_ssl' do
Capybara.app_host = 'https://arubaito-ex.jp'
end
step 'access staging' do
Capybara.app_host = 'http://staging.arubaito-ex.jp'
end
step 'access development' do
Capybara.app_host = 'http://localhost:3001'
end
# Get ZIGExN's job item and get it ID
step 'get_sample_job_id' do
visit "http://arubaito-ex.jp/jobs/search_result?keywords=%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%81%98%E3%81%92%E3%82%93" #=> 株式会社じげん
first(:css, '.jobsResult .jobInfo h2 a')[:href] =~ %r{/jobs/(\d+)}
@latest_job_id = $1.to_i
end
# entry page
step 'visit_sample_entry_page' do
visit "/entries/new?job_ids%5B%5D=#{@latest_job_id}"
end
# jobs page
step 'visit_sample_job_page' do
visit "/jobs/#{@latest_job_id}"
end
step 'check_cookies_has_sample_job' do
expect(page.driver.cookies["history"].value.to_i).to eq(@latest_job_id)
end
step 'have_link_with_sample_job' do
expect(page).to have_selector(%Q{a[href="/jobs/#{@latest_job_id}"]})
end
# step 'access production' do
# Capybara.app_host = 'http://arubaito-ex.jp'
# end
# step 'access production_ssl' do
# Capybara.app_host = 'https://arubaito-ex.jp'
# end
# step 'access staging' do
# Capybara.app_host = 'http://staging.arubaito-ex.jp'
# end
# step 'access development' do
# Capybara.app_host = 'http://localhost:3001'
# end
# # Get ZIGExN's job item and get it ID
# step 'get_sample_job_id' do
# visit "http://arubaito-ex.jp/jobs/search_result?keywords=%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%81%98%E3%81%92%E3%82%93" #=> 株式会社じげん
# first(:css, '.jobsResult .jobInfo h2 a')[:href] =~ %r{/jobs/(\d+)}
# @latest_job_id = $1.to_i
# end
# # entry page
# step 'visit_sample_entry_page' do
# visit "/entries/new?job_ids%5B%5D=#{@latest_job_id}"
# end
# # jobs page
# step 'visit_sample_job_page' do
# visit "/jobs/#{@latest_job_id}"
# end
# step 'check_cookies_has_sample_job' do
# expect(page.driver.cookies["history"].value.to_i).to eq(@latest_job_id)
# end
# step 'have_link_with_sample_job' do
# expect(page).to have_selector(%Q{a[href="/jobs/#{@latest_job_id}"]})
# end
step 'access host' do
Capybara.app_host = ENV['HOST']
end
step 'logged with supper_admin' do
Capybara.app_host = ENV['HOST']
visit '/admin/users/sign_in?locale=en'
fill_in 'user[email]', with: 'super_admin@zigexn.vn', match: :first
fill_in 'user[password]', with: 'password', match: :first
click_button 'Sign in'
end
# set cookies
step 'I have a :key cookie set to :value' do |key, value|
headers = {}
Rack::Utils.set_cookie_header!(headers, key, value)
cookie_string = headers['Set-Cookie']
Capybara.current_session.driver.browser.set_cookie(cookie_string)
end
# access URL
step 'visit :path' do |path|
visit path
end
# check response code
step 'response code is :code' do |code|
expect(page.status_code).to eq(code.to_i)
end
......@@ -11,12 +35,19 @@ step 'response include :string' do |string|
expect(page).to have_content(string)
end
step 'h1 include :string' do |string|
expect(page.find('h1')).to have_content(string)
step 'response :html_tag include :content' do |html_tag, content|
expect(page.find(html_tag)).to have_content(content)
end
# title page
step 'page title with :content' do |content|
expect(page.title).to have_content(content)
end
step 'h2 include :string' do |string|
expect(page.find('h2')).to have_content(string)
# meta tag content
step 'meta :field with :value' do |field, value|
tag = %(meta[name="#{field}"][content="#{value}"])
expect(page).to have_css(tag, visible: false)
end
step 'textbox include :string' do |string|
......@@ -31,8 +62,9 @@ step 'click link :link' do |link|
first(:xpath, "//a[@href='" + link + "']").click
end
# fill text into input tag
step 'fill in :field_name with :value' do |field_name, value|
fill_in field_name, with: value, :match => :first
fill_in field_name, with: value, match: :first
end
step 'click button by class :class_name' do |class_name|
......@@ -59,7 +91,3 @@ step 'use smartphone' do
page.driver.headers = { "User-Agent" => "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53" }
end
step 'check metatag :field with :value' do |field, value|
tag = %Q(meta[name="#{field}"][content="#{value}"])
expect(page).to have_css(tag, visible: false)
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment