Moved to css selectors for browser tests. Fixed setting widget.
This commit is contained in:
parent
093f1df438
commit
97377bf138
11 changed files with 424 additions and 143 deletions
|
@ -31,13 +31,11 @@ class App.SettingsAreaItem extends App.Controller
|
|||
|
||||
# defaults
|
||||
directValue = 0
|
||||
directData = undefined
|
||||
for item in @setting.options['form']
|
||||
directValue = +1
|
||||
directData = @setting.state.value[item.name]
|
||||
|
||||
directValue += 1
|
||||
if directValue > 1
|
||||
item['default'] = directData
|
||||
for item in @setting.options['form']
|
||||
item['default'] = @setting.state.value[item.name]
|
||||
else
|
||||
item['default'] = @setting.state.value
|
||||
|
||||
|
@ -62,7 +60,7 @@ class App.SettingsAreaItem extends App.Controller
|
|||
directValue = 0
|
||||
directData = undefined
|
||||
for item in @setting.options['form']
|
||||
directValue = +1
|
||||
directValue += 1
|
||||
directData = params[item.name]
|
||||
|
||||
if directValue > 1
|
||||
|
|
|
@ -15,14 +15,14 @@
|
|||
<div class="span6 master_user">
|
||||
<h2><%- @T( 'Master Agent' ) %></h2>
|
||||
<form class="form-stacked" id="form-master">
|
||||
<button class="btn btn-primary submit"><%- @T( 'Next...' ) %></button>
|
||||
<button type="submit" class="btn btn-primary submit"><%- @T( 'Next...' ) %></button>
|
||||
</form>
|
||||
</div>
|
||||
<% end %>
|
||||
<div class="span6 agent_user hide">
|
||||
<h2><%- @T( 'Invite Agents' ) %></h2>
|
||||
<form class="form-stacked" id="form-agent">
|
||||
<button class="btn btn-primary submit"><%- @T( 'Send invitation' ) %></button>
|
||||
<button type="submit" class="btn btn-primary submit"><%- @T( 'Send invitation' ) %></button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="span6">
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<form class="">
|
||||
<form class="" id="<%= @setting.name %>">
|
||||
<h2><%- @T( @setting.title ) %></h2>
|
||||
<p><%- @T( @setting.description ) %></p>
|
||||
<div id="form-item"></div>
|
||||
|
|
83
test/browser/aaa_getting_started.rb
Normal file
83
test/browser/aaa_getting_started.rb
Normal file
|
@ -0,0 +1,83 @@
|
|||
# encoding: utf-8
|
||||
require 'browser_test_helper'
|
||||
|
||||
class AaaGettingStarted < ActiveSupport::TestCase
|
||||
test 'getting started' do
|
||||
tests = [
|
||||
{
|
||||
:name => 'start',
|
||||
:instance => Watir::Browser.new,
|
||||
:url => 'http://localhost:3000/#getting_started',
|
||||
:action => [
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 6,
|
||||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:css => '#form-master',
|
||||
:result => true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
:name => 'getting started',
|
||||
:action => [
|
||||
{
|
||||
:execute => 'set',
|
||||
:css => 'input[name="firstname"]',
|
||||
:value => 'Test Master',
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:css => 'input[name="lastname"]',
|
||||
:value => 'Agent',
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:css => 'input[name="email"]',
|
||||
:value => 'master@example.com',
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:element => :text_field,
|
||||
:css => 'input[name="password"]',
|
||||
:value => 'test1234äöüß',
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:css => 'input[name="password_confirm"]',
|
||||
:value => 'test1234äöüß',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:css => '#form-master button[type="submit"]',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 5,
|
||||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:css => '#login',
|
||||
:result => false,
|
||||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :url,
|
||||
:result => '#getting_started',
|
||||
},
|
||||
|
||||
# check action
|
||||
{
|
||||
:execute => 'match',
|
||||
:css => 'body',
|
||||
:value => 'Invite Agents',
|
||||
:match_result => true,
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
browser_single_test(tests)
|
||||
end
|
||||
end
|
|
@ -11,20 +11,17 @@ class Auth < ActiveSupport::TestCase
|
|||
:action => [
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :form,
|
||||
:id => 'login',
|
||||
:css => '#login',
|
||||
:result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :button,
|
||||
:type => 'submit',
|
||||
:css => '#login button',
|
||||
:result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:element => :button,
|
||||
:type => 'submit',
|
||||
:css => '#login button',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
|
@ -32,8 +29,7 @@ class Auth < ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :form,
|
||||
:id => 'login',
|
||||
:css => '#login',
|
||||
:result => true,
|
||||
},
|
||||
],
|
||||
|
@ -47,37 +43,40 @@ class Auth < ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :form,
|
||||
:id => 'login',
|
||||
:css => '#login',
|
||||
:result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:element => :text_field,
|
||||
:name => 'username',
|
||||
:css => 'input[name="username"]',
|
||||
:value => 'nicole.braun@zammad.org',
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:element => :text_field,
|
||||
:name => 'password',
|
||||
:css => 'input[name="password"]',
|
||||
:value => 'test'
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:element => :button,
|
||||
:type => 'submit',
|
||||
:css => '#login button',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 3,
|
||||
},
|
||||
|
||||
# check action
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :form,
|
||||
:id => 'login',
|
||||
:css => '#login',
|
||||
:result => false,
|
||||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:css => 'body',
|
||||
:value => 'nicole.braun@zammad.org',
|
||||
:match_result => true,
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
85
test/browser/auth_master.rb
Normal file
85
test/browser/auth_master.rb
Normal file
|
@ -0,0 +1,85 @@
|
|||
# encoding: utf-8
|
||||
require 'browser_test_helper'
|
||||
|
||||
class AuthMaster < ActiveSupport::TestCase
|
||||
test 'authentication' do
|
||||
tests = [
|
||||
{
|
||||
:name => 'start',
|
||||
:instance => Watir::Browser.new,
|
||||
:url => 'http://localhost:3000',
|
||||
:action => [
|
||||
{
|
||||
:execute => 'check',
|
||||
:css => '#login',
|
||||
:result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:css => '#login button',
|
||||
:result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:css => '#login button',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 3,
|
||||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:css => '#login',
|
||||
:result => true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
:name => 'login',
|
||||
:action => [
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 2,
|
||||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:css => '#login',
|
||||
:result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:css => 'input[name="username"]',
|
||||
:value => 'master@example.com',
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:css => 'input[name="password"]',
|
||||
:value => 'test1234äöüß'
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:css => '#login button',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 3,
|
||||
},
|
||||
|
||||
# check action
|
||||
{
|
||||
:execute => 'check',
|
||||
:css => '#login',
|
||||
:result => false,
|
||||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:css => 'body',
|
||||
:value => 'master@example',
|
||||
:match_result => true,
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
browser_single_test(tests)
|
||||
end
|
||||
end
|
|
@ -9,45 +9,40 @@ class Chat < ActiveSupport::TestCase
|
|||
:name => 'start',
|
||||
:instance1 => Watir::Browser.new,
|
||||
:instance2 => Watir::Browser.new,
|
||||
:instance1_username => 'm@edenhofer.de',
|
||||
:instance1_username => 'master@example.com',
|
||||
:instance1_password => 'test',
|
||||
:instance2_username => 'm@edenhofer.de',
|
||||
:instance2_username => 'master@example.com',
|
||||
:instance2_password => 'test',
|
||||
:url => 'http://localhost:3000',
|
||||
:action => [
|
||||
{
|
||||
:where => :instance1,
|
||||
:execute => 'check',
|
||||
:element => :form,
|
||||
:id => 'login',
|
||||
:css => '#login',
|
||||
:result => false,
|
||||
},
|
||||
{
|
||||
:where => :instance2,
|
||||
:execute => 'check',
|
||||
:element => :form,
|
||||
:id => 'login',
|
||||
:css => '#login',
|
||||
:result => false,
|
||||
},
|
||||
|
||||
{
|
||||
:where => :instance1,
|
||||
:execute => 'click',
|
||||
:element => :a,
|
||||
:id => 'chat_toogle',
|
||||
:css => '#chat_toogle',
|
||||
},
|
||||
{
|
||||
:where => :instance1,
|
||||
:execute => 'set',
|
||||
:element => :text_field,
|
||||
:name => 'chat_message',
|
||||
:css => 'input[name="chat_message"]',
|
||||
:value => message,
|
||||
},
|
||||
{
|
||||
:where => :instance1,
|
||||
:execute => 'send_key',
|
||||
:element => :text_field,
|
||||
:name => 'chat_message',
|
||||
:css => 'input[name="chat_message"]',
|
||||
:value => :enter,
|
||||
},
|
||||
{
|
||||
|
@ -57,16 +52,14 @@ class Chat < ActiveSupport::TestCase
|
|||
{
|
||||
:where => :instance1,
|
||||
:execute => 'match',
|
||||
:element => :div,
|
||||
:id => 'chat_log_container',
|
||||
:css => '#chat_log_container',
|
||||
:value => message,
|
||||
:match_result => true,
|
||||
},
|
||||
{
|
||||
:where => :instance2,
|
||||
:execute => 'match',
|
||||
:element => :div,
|
||||
:id => 'chat_log_container',
|
||||
:css => '#chat_log_container',
|
||||
:value => message,
|
||||
:match_result => true,
|
||||
},
|
||||
|
|
|
@ -9,8 +9,7 @@ class CustomerTicketCreate < ActiveSupport::TestCase
|
|||
:action => [
|
||||
{
|
||||
:execute => 'click',
|
||||
:element => :link,
|
||||
:href => '#customer_ticket_new',
|
||||
:css => 'a[href="#customer_ticket_new"]',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
|
@ -18,8 +17,7 @@ class CustomerTicketCreate < ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :div,
|
||||
:id => 'form_create',
|
||||
:css => '#form_create',
|
||||
:result => true,
|
||||
},
|
||||
{
|
||||
|
@ -28,26 +26,22 @@ class CustomerTicketCreate < ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'select',
|
||||
:element => :select_list,
|
||||
:name => 'group_id',
|
||||
:css => '#form_create select[name="group_id"]',
|
||||
:value => 'Users',
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:element => :text_field,
|
||||
:name => 'subject',
|
||||
:css => '#form_create input[name="subject"]',
|
||||
:value => 'some subject 123äöü',
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:element => :text_field,
|
||||
:name => 'body',
|
||||
:css => '#form_create textarea[name="body"]',
|
||||
:value => 'some body 123äöü',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:element => :button,
|
||||
:type => 'submit',
|
||||
:css => 'button[type="submit"]',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
|
@ -55,8 +49,7 @@ class CustomerTicketCreate < ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :form,
|
||||
:id => 'login',
|
||||
:css => '#login',
|
||||
:result => false,
|
||||
},
|
||||
{
|
||||
|
@ -68,8 +61,7 @@ class CustomerTicketCreate < ActiveSupport::TestCase
|
|||
# check ticket
|
||||
{
|
||||
:execute => 'match',
|
||||
:element => :div,
|
||||
:class => 'article',
|
||||
:css => 'div.article',
|
||||
:value => 'some body 123äöü',
|
||||
:match_result => true,
|
||||
},
|
||||
|
@ -77,19 +69,17 @@ class CustomerTicketCreate < ActiveSupport::TestCase
|
|||
# update ticket
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :text_field,
|
||||
:name => 'body',
|
||||
:css => 'textarea[name="body"]',
|
||||
:result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:element => :text_field,
|
||||
:name => 'body',
|
||||
:css => 'textarea[name="body"]',
|
||||
:value => 'some body 1234 äöüß',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:element => :button,
|
||||
:css => 'button',
|
||||
:type => 'submit',
|
||||
},
|
||||
{
|
||||
|
@ -98,7 +88,7 @@ class CustomerTicketCreate < ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:element => :body,
|
||||
:css => 'body',
|
||||
:value => 'some body 1234 äöüß',
|
||||
:match_result => true,
|
||||
},
|
||||
|
|
|
@ -9,13 +9,11 @@ class Preferences < ActiveSupport::TestCase
|
|||
:action => [
|
||||
{
|
||||
:execute => 'click',
|
||||
:element => :link,
|
||||
:href => '#current_user',
|
||||
:css => 'a[href="#current_user"]',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:element => :link,
|
||||
:href => '#profile',
|
||||
:css => 'a[href="#profile"]',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
|
@ -23,8 +21,7 @@ class Preferences < ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:element => :link,
|
||||
:href => '#profile/language',
|
||||
:css => 'a[href="#profile/language"]',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
|
@ -32,8 +29,7 @@ class Preferences < ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :div,
|
||||
:id => 'language',
|
||||
:css => '#language',
|
||||
:result => true,
|
||||
},
|
||||
{
|
||||
|
@ -42,14 +38,12 @@ class Preferences < ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'select',
|
||||
:element => :select_list,
|
||||
:name => 'locale',
|
||||
:css => '#language select[name="locale"]',
|
||||
:value => 'Deutsch',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:element => :button,
|
||||
:type => 'submit',
|
||||
:css => '#language button',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
|
@ -57,26 +51,23 @@ class Preferences < ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :form,
|
||||
:id => 'login',
|
||||
:css => '#login',
|
||||
:result => false,
|
||||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:element => :body,
|
||||
:css => 'body',
|
||||
:value => 'Sprache',
|
||||
:match_result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'select',
|
||||
:element => :select_list,
|
||||
:name => 'locale',
|
||||
:css => '#language select[name="locale"]',
|
||||
:value => 'English (United States)',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:element => :button,
|
||||
:type => 'submit',
|
||||
:css => '#language button',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
|
@ -84,7 +75,7 @@ class Preferences < ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:element => :body,
|
||||
:css => 'body',
|
||||
:value => 'Language',
|
||||
:match_result => true,
|
||||
},
|
||||
|
|
159
test/browser/setting.rb
Normal file
159
test/browser/setting.rb
Normal file
|
@ -0,0 +1,159 @@
|
|||
# encoding: utf-8
|
||||
require 'browser_test_helper'
|
||||
|
||||
class TestSetting < ActiveSupport::TestCase
|
||||
test 'setting' do
|
||||
tests = [
|
||||
{
|
||||
:name => 'setting',
|
||||
:action => [
|
||||
{
|
||||
:execute => 'click',
|
||||
:css => 'a[href="#settings"]',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:css => 'a[href="#settings/security"]',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:css => 'a[href="#settings/security/third_party_auth"]',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 2,
|
||||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:css => '#auth_facebook select[name="auth_facebook"]',
|
||||
:result => true,
|
||||
},
|
||||
|
||||
# set yes
|
||||
{
|
||||
:execute => 'select',
|
||||
:css => '#auth_facebook select[name="auth_facebook"]',
|
||||
:value => 'yes',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:css => '#auth_facebook button[type=submit]',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 2,
|
||||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:css => '#auth_facebook select[name="auth_facebook"]',
|
||||
:value => 'yes',
|
||||
:match_result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:css => '#auth_facebook select[name="auth_facebook"]',
|
||||
:value => 'no',
|
||||
:match_result => false,
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 2,
|
||||
},
|
||||
|
||||
# set no
|
||||
{
|
||||
:execute => 'select',
|
||||
:css => '#auth_facebook select[name="auth_facebook"]',
|
||||
:value => 'no',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:css => '#auth_facebook button[type=submit]',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 2,
|
||||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:css => '#auth_facebook select[name="auth_facebook"]',
|
||||
:value => 'yes',
|
||||
:match_result => false,
|
||||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:css => '#auth_facebook select[name="auth_facebook"]',
|
||||
:value => 'no',
|
||||
:match_result => true,
|
||||
},
|
||||
|
||||
# set key and secret
|
||||
{
|
||||
:execute => 'set',
|
||||
:css => '#auth_facebook_credentials input[name=app_id]',
|
||||
:value => 'id_test1234äöüß',
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:css => '#auth_facebook_credentials input[name=app_secret]',
|
||||
:value => 'secret_test1234äöüß',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:css => '#auth_facebook_credentials button[type=submit]',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 2,
|
||||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:css => '#auth_facebook_credentials input[name=app_id]',
|
||||
:value => 'id_test1234äöüß',
|
||||
:match_result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:css => '#auth_facebook_credentials input[name=app_secret]',
|
||||
:value => 'secret_test1234äöüß',
|
||||
:match_result => true,
|
||||
},
|
||||
|
||||
# set key and secret again
|
||||
{
|
||||
:execute => 'set',
|
||||
:css => '#auth_facebook_credentials input[name=app_id]',
|
||||
:value => '---',
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:css => '#auth_facebook_credentials input[name=app_secret]',
|
||||
:value => '---',
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:css => '#auth_facebook_credentials button[type=submit]',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
:value => 2,
|
||||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:css => '#auth_facebook_credentials input[name=app_id]',
|
||||
:value => '---',
|
||||
:match_result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'match',
|
||||
:css => '#auth_facebook_credentials input[name=app_secret]',
|
||||
:value => '---',
|
||||
:match_result => true,
|
||||
},
|
||||
|
||||
],
|
||||
},
|
||||
]
|
||||
browser_signle_test_with_login(tests, { :username => 'master@example.com' })
|
||||
end
|
||||
end
|
|
@ -19,26 +19,22 @@ class ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :form,
|
||||
:id => 'login',
|
||||
:css => '#login',
|
||||
:result => true,
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:element => :text_field,
|
||||
:name => 'username',
|
||||
:css => 'input[name="username"]',
|
||||
:value => data[:username] || 'nicole.braun@zammad.org',
|
||||
},
|
||||
{
|
||||
:execute => 'set',
|
||||
:element => :text_field,
|
||||
:name => 'password',
|
||||
:css => 'input[name="password"]',
|
||||
:value => data[:password] || 'test'
|
||||
},
|
||||
{
|
||||
:execute => 'click',
|
||||
:element => :button,
|
||||
:type => 'submit',
|
||||
:css => '#login button',
|
||||
},
|
||||
{
|
||||
:execute => 'wait',
|
||||
|
@ -46,8 +42,7 @@ class ActiveSupport::TestCase
|
|||
},
|
||||
{
|
||||
:execute => 'check',
|
||||
:element => :form,
|
||||
:id => 'login',
|
||||
:css => '#login',
|
||||
:result => false,
|
||||
},
|
||||
],
|
||||
|
@ -56,8 +51,8 @@ class ActiveSupport::TestCase
|
|||
return all_tests
|
||||
end
|
||||
|
||||
def browser_signle_test_with_login(tests)
|
||||
all_tests = browser_login( {} )
|
||||
def browser_signle_test_with_login(tests, login = {})
|
||||
all_tests = browser_login( login )
|
||||
all_tests = all_tests.concat( tests )
|
||||
browser_single_test(all_tests)
|
||||
end
|
||||
|
@ -123,44 +118,12 @@ class ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def browser_element_action(test, action, instance)
|
||||
if action[:id]
|
||||
element = instance.send( action[:element], { :id => action[:id] } )
|
||||
if action[:css]
|
||||
element = instance.element( { :css => action[:css] } )
|
||||
if action[:result] == false
|
||||
assert( !element.exists?, "(#{test[:name]}) Element #{action[:element]} with id #{action[:id]} exists" )
|
||||
assert( !element.exists?, "(#{test[:name]}) Element with css '#{action[:css]}' exists" )
|
||||
else
|
||||
assert( element.exists?, "(#{test[:name]}) Element #{action[:element]} with id #{action[:id]} doesn't exist" )
|
||||
end
|
||||
elsif action[:type]
|
||||
if action[:result] == false
|
||||
element = instance.send( action[:element], { :type => action[:type] } )
|
||||
assert( !element.exists?, "(#{test[:name]}) Element #{action[:element]} with type #{action[:type]} exists" )
|
||||
else
|
||||
element = instance.send( action[:element], { :type => action[:type] } )
|
||||
assert( element.exists?, "(#{test[:name]}) Element #{action[:element]} with type #{action[:type]} doesn't exist" )
|
||||
end
|
||||
elsif action[:class]
|
||||
if action[:result] == false
|
||||
element = instance.send( action[:element], { :class => action[:class] } )
|
||||
assert( !element.exists?, "(#{test[:name]}) Element #{action[:element]} with class #{action[:class]} exists" )
|
||||
else
|
||||
element = instance.send( action[:element], { :class => action[:class] } )
|
||||
assert( element.exists?, "(#{test[:name]}) Element #{action[:element]} with class #{action[:class]} doesn't exist" )
|
||||
end
|
||||
elsif action[:name]
|
||||
if action[:result] == false
|
||||
element = instance.send( action[:element], { :name => action[:name] } )
|
||||
assert( !element.exists?, "(#{test[:name]}) Element #{action[:element]} with name #{action[:name]} exists" )
|
||||
else
|
||||
element = instance.send( action[:element], { :name => action[:name] } )
|
||||
assert( element.exists?, "(#{test[:name]}) Element #{action[:element]} with name #{action[:name]} doesn't exist" )
|
||||
end
|
||||
elsif action[:href]
|
||||
if action[:result] == false
|
||||
element = instance.send( action[:element], { :href => action[:href] } )
|
||||
assert( !element.exists?, "(#{test[:name]}) Element #{action[:element]} with href #{action[:href]} exists" )
|
||||
else
|
||||
element = instance.send( action[:element], { :href => action[:href] } )
|
||||
assert( element.exists?, "(#{test[:name]}) Element #{action[:element]} with href #{action[:href]} doesn't exist" )
|
||||
assert( element.exists?, "(#{test[:name]}) Element with css '#{action[:css]}' doesn't exist" )
|
||||
end
|
||||
elsif action[:element] == :url
|
||||
if instance.url =~ /#{Regexp.quote(action[:result])}/
|
||||
|
@ -168,31 +131,51 @@ class ActiveSupport::TestCase
|
|||
else
|
||||
assert( false, "(#{test[:name]}) url #{instance.url} is not matching #{action[:result]}" )
|
||||
end
|
||||
elsif action[:element] == :body
|
||||
element = instance.send( action[:element] )
|
||||
else
|
||||
assert( false, "(#{test[:name]}) unknow selector for '#{action[:element]}'" )
|
||||
end
|
||||
if action[:execute] == 'set'
|
||||
element.set( action[:value] )
|
||||
element.to_subtype.set( action[:value] )
|
||||
elsif action[:execute] == 'select'
|
||||
element.select( action[:value] )
|
||||
element.to_subtype.select( action[:value] )
|
||||
elsif action[:execute] == 'click'
|
||||
element.click
|
||||
elsif action[:execute] == 'send_key'
|
||||
element.send_keys action[:value]
|
||||
elsif action[:execute] == 'match'
|
||||
if element.text =~ /#{Regexp.quote(action[:value])}/
|
||||
if action[:css] =~ /select/
|
||||
success = element.to_subtype.selected?(action[:value])
|
||||
if action[:match_result]
|
||||
assert( true, "(#{test[:name]}) matching '#{action[:value]}' in content '#{element.text}'" )
|
||||
if success
|
||||
assert( true, "(#{test[:name]}) matching '#{action[:value]}' in select list" )
|
||||
else
|
||||
assert( false, "(#{test[:name]}) not matching '#{action[:value]}' in select list" )
|
||||
end
|
||||
else
|
||||
assert( false, "(#{test[:name]}) matching '#{action[:value]}' in content '#{element.text}' but should not!" )
|
||||
if success
|
||||
assert( false, "(#{test[:name]}) not matching '#{action[:value]}' in select list" )
|
||||
else
|
||||
assert( true, "(#{test[:name]}) matching '#{action[:value]}' in select list" )
|
||||
end
|
||||
end
|
||||
else
|
||||
if !action[:match_result]
|
||||
assert( true, "(#{test[:name]}) not matching '#{action[:value]}' in content '#{element.text}'" )
|
||||
if action[:css] =~ /input|textarea/i
|
||||
text = element.to_subtype.value
|
||||
else
|
||||
assert( false, "(#{test[:name]}) not matching '#{action[:value]}' in content '#{element.text}' but should not!" )
|
||||
text = element.text
|
||||
end
|
||||
if text =~ /#{Regexp.quote(action[:value])}/
|
||||
if action[:match_result]
|
||||
assert( true, "(#{test[:name]}) matching '#{action[:value]}' in content '#{text}'" )
|
||||
else
|
||||
assert( false, "(#{test[:name]}) matching '#{action[:value]}' in content '#{text}' but should not!" )
|
||||
end
|
||||
else
|
||||
if !action[:match_result]
|
||||
assert( true, "(#{test[:name]}) not matching '#{action[:value]}' in content '#{text}'" )
|
||||
else
|
||||
assert( false, "(#{test[:name]}) not matching '#{action[:value]}' in content '#{text}' but should not!" )
|
||||
end
|
||||
end
|
||||
end
|
||||
elsif action[:execute] == 'check'
|
||||
|
|
Loading…
Reference in a new issue