the_jobbook_admin_data 1.3.0a
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/.gitignore +19 -0
- data/CHANGELOG.rdoc +284 -0
- data/Gemfile +22 -0
- data/Gemfile.lock +121 -0
- data/Guardfile +14 -0
- data/MIT-LICENSE +20 -0
- data/README.md +37 -0
- data/README.rdoc +3 -0
- data/Rakefile +40 -0
- data/admin_data.gemspec +23 -0
- data/app/assets/images/add.png +0 -0
- data/app/assets/images/admin_data/.gitkeep +0 -0
- data/app/assets/images/no.png +0 -0
- data/app/assets/images/site.png +0 -0
- data/app/assets/images/sort_by_asc.jpg +0 -0
- data/app/assets/images/sort_by_desc.jpg +0 -0
- data/app/assets/images/sort_by_nothing.jpg +0 -0
- data/app/assets/javascripts/admin_data.js +18 -0
- data/app/assets/javascripts/admin_data/application.js +15 -0
- data/app/assets/javascripts/advance_search/act_on_result.js +45 -0
- data/app/assets/javascripts/advance_search/advance_search.js +83 -0
- data/app/assets/javascripts/advance_search/advance_search_structure.js +79 -0
- data/app/assets/javascripts/advance_search/ajaxify_advance_search.js +28 -0
- data/app/assets/javascripts/advance_search/build_first_row.js +8 -0
- data/app/assets/javascripts/advance_search/event_bindings.js +76 -0
- data/app/assets/javascripts/advance_search/global_ajax_setting.js +10 -0
- data/app/assets/javascripts/advance_search/sortby.js +14 -0
- data/app/assets/javascripts/advance_search/trigger_submit_on_domready.js +6 -0
- data/app/assets/javascripts/analytics/report.js +7 -0
- data/app/assets/javascripts/misc/drop_down_change.js +8 -0
- data/app/assets/javascripts/misc/js_util.js +58 -0
- data/app/assets/javascripts/misc/quick_search_input_focus.js +6 -0
- data/app/assets/javascripts/vendor/jquery-1.4.2.js +6240 -0
- data/app/assets/javascripts/vendor/jquery-ui-1.7.2.custom.min.js +298 -0
- data/app/assets/javascripts/vendor/jquery.ba-isjquery.js +21 -0
- data/app/assets/javascripts/vendor/jquery_form.js +814 -0
- data/app/assets/javascripts/vendor/log.js +9 -0
- data/app/assets/javascripts/vendor/rails.js +132 -0
- data/app/assets/stylesheets/admin_data.css +1141 -0
- data/app/assets/stylesheets/admin_data/application.css +13 -0
- data/app/assets/stylesheets/vendor/jquery-ui-1.7.2.custom.css +406 -0
- data/app/controllers/admin_data/application_controller.rb +107 -0
- data/app/controllers/admin_data/crud_controller.rb +100 -0
- data/app/controllers/admin_data/feed_controller.rb +48 -0
- data/app/controllers/admin_data/home_controller.rb +8 -0
- data/app/controllers/admin_data/migration_controller.rb +18 -0
- data/app/controllers/admin_data/public_controller.rb +28 -0
- data/app/controllers/admin_data/search_controller.rb +143 -0
- data/app/controllers/admin_data/table_structure_controller.rb +25 -0
- data/app/helpers/admin_data/application_helper.rb +320 -0
- data/app/views/admin_data/crud/association/_association_info.html.erb +11 -0
- data/app/views/admin_data/crud/association/_belongs_to_info.html.erb +7 -0
- data/app/views/admin_data/crud/association/_habtm_info.html.erb +7 -0
- data/app/views/admin_data/crud/association/_has_many_info.html.erb +7 -0
- data/app/views/admin_data/crud/association/_has_one_info.html.erb +6 -0
- data/app/views/admin_data/crud/edit.html.erb +36 -0
- data/app/views/admin_data/crud/misc/_form.html.erb +38 -0
- data/app/views/admin_data/crud/misc/_modify_record.html.erb +18 -0
- data/app/views/admin_data/crud/new.html.erb +25 -0
- data/app/views/admin_data/crud/show.html.erb +42 -0
- data/app/views/admin_data/feed/index.rss.builder +25 -0
- data/app/views/admin_data/home/index.html.erb +21 -0
- data/app/views/admin_data/migration/index.html.erb +18 -0
- data/app/views/admin_data/migration/jstest.html.erb +51 -0
- data/app/views/admin_data/search/advance_search.html.erb +1 -0
- data/app/views/admin_data/search/quick_search.html.erb +1 -0
- data/app/views/admin_data/search/search/_advance_search_form.html.erb +52 -0
- data/app/views/admin_data/search/search/_errors.html.erb +5 -0
- data/app/views/admin_data/search/search/_listing.html.erb +43 -0
- data/app/views/admin_data/search/search/_search_form.html.erb +27 -0
- data/app/views/admin_data/search/search/_title.html.erb +34 -0
- data/app/views/admin_data/shared/_breadcrum.html.erb +16 -0
- data/app/views/admin_data/shared/_drop_down_klasses.html.erb +4 -0
- data/app/views/admin_data/shared/_flash_message.html.erb +13 -0
- data/app/views/admin_data/shared/_header.html.erb +20 -0
- data/app/views/admin_data/shared/_powered_by.html.erb +6 -0
- data/app/views/admin_data/shared/_secondary_navigation.html.erb +26 -0
- data/app/views/admin_data/table_structure/index.html.erb +54 -0
- data/app/views/layouts/admin_data.html.erb +34 -0
- data/app/views/layouts/admin_data/application.html.erb +14 -0
- data/app/views/layouts/search.html.erb +71 -0
- data/config/routes.rb +32 -0
- data/lib/admin_data.rb +27 -0
- data/lib/admin_data/active_record_util.rb +102 -0
- data/lib/admin_data/analytics.rb +176 -0
- data/lib/admin_data/authenticator.rb +15 -0
- data/lib/admin_data/config.rb +38 -0
- data/lib/admin_data/configuration.rb +127 -0
- data/lib/admin_data/date_util.rb +58 -0
- data/lib/admin_data/engine.rb +17 -0
- data/lib/admin_data/model_finder.rb +15 -0
- data/lib/admin_data/rails_version_check.rb +8 -0
- data/lib/admin_data/search.rb +188 -0
- data/lib/admin_data/setup_config.rb +24 -0
- data/lib/admin_data/util.rb +102 -0
- data/lib/admin_data/version.rb +3 -0
- data/lib/tasks/admin_data_tasks.rake +4 -0
- data/script/rails +8 -0
- data/test/admin_data_test.rb +7 -0
- data/test/dummy/README.md +19 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +5 -0
- data/test/dummy/app/models/user.rb +3 -0
- data/test/dummy/app/models/user/student.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +15 -0
- data/test/dummy/config/boot.rb +13 -0
- data/test/dummy/config/cucumber.yml +9 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/database.yml.mysql +22 -0
- data/test/dummy/config/database.yml.pg +15 -0
- data/test/dummy/config/database.yml.sqlite3 +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +22 -0
- data/test/dummy/config/environments/production.rb +49 -0
- data/test/dummy/config/environments/test.rb +35 -0
- data/test/dummy/config/initializers/admin_data.rb +15 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/empty_spaces_to_nil.rb +10 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +9 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20091030202259_create_tables.rb +72 -0
- data/test/dummy/db/production.sqlite3 +1 -0
- data/test/dummy/db/schema.rb +23 -0
- data/test/dummy/db/seeds.rb +40 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/features/advance_search/boolean.feature +74 -0
- data/test/dummy/features/advance_search/datetime.feature +101 -0
- data/test/dummy/features/advance_search/delete_all.feature +20 -0
- data/test/dummy/features/advance_search/destroy_all.feature +20 -0
- data/test/dummy/features/advance_search/integer.feature +69 -0
- data/test/dummy/features/advance_search/multiple_rows.feature +87 -0
- data/test/dummy/features/advance_search/string.feature +130 -0
- data/test/dummy/features/crud.feature +50 -0
- data/test/dummy/features/crud_show.feature +56 -0
- data/test/dummy/features/feed.feature +13 -0
- data/test/dummy/features/home.feature +42 -0
- data/test/dummy/features/migration.feature +7 -0
- data/test/dummy/features/quick_search.feature +113 -0
- data/test/dummy/features/step_definitions/advance_search_steps.rb +13 -0
- data/test/dummy/features/step_definitions/app_steps.rb +36 -0
- data/test/dummy/features/step_definitions/async.rb +18 -0
- data/test/dummy/features/step_definitions/configuration_steps.rb +61 -0
- data/test/dummy/features/step_definitions/crud_show_steps.rb +37 -0
- data/test/dummy/features/step_definitions/feed_steps.rb +24 -0
- data/test/dummy/features/step_definitions/quick_search_steps.rb +68 -0
- data/test/dummy/features/step_definitions/util.rb +90 -0
- data/test/dummy/features/step_definitions/web_steps.rb +219 -0
- data/test/dummy/features/support/env.rb +66 -0
- data/test/dummy/features/support/hooks.rb +9 -0
- data/test/dummy/features/support/paths.rb +33 -0
- data/test/dummy/features/table_structure.feature +18 -0
- data/test/dummy/lib/tasks/.gitkeep +0 -0
- data/test/dummy/lib/tasks/cucumber.rake +53 -0
- data/test/dummy/lib/tasks/dbs.rake +30 -0
- data/test/dummy/lib/tasks/sample_cars.rake +18 -0
- data/test/dummy/public/.gitkeep +0 -0
- data/test/dummy/script/cucumber +10 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/factories.rb +30 -0
- data/test/dummy/test/test_helper.rb +7 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/admin_data/model_finder_test.rb +16 -0
- data/test/unit/car_test.rb +96 -0
- data/test/unit/user_phone_test.rb +19 -0
- metadata +253 -0
|
Binary file
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
Feature: Advance Search for boolean
|
|
2
|
+
|
|
3
|
+
@javascript
|
|
4
|
+
Scenario: Advance Search for a boolean
|
|
5
|
+
Given a user exists
|
|
6
|
+
Given I visit advance_search page
|
|
7
|
+
When I select "active" from "adv_search[1_row][col1]"
|
|
8
|
+
Then page should have css "#advance_search_table tr td select.col2"
|
|
9
|
+
When I select "is null" from "adv_search[1_row][col2]"
|
|
10
|
+
#Then page should have disabled css "#advance_search_table tr td input.col3"
|
|
11
|
+
When I select "is not null" from "adv_search[1_row][col2]"
|
|
12
|
+
#Then page should have disabled css "#advance_search_table tr td input.col3"
|
|
13
|
+
When I select "is true" from "adv_search[1_row][col2]"
|
|
14
|
+
#Then page should have disabled css "#advance_search_table tr td input.col3"
|
|
15
|
+
When I select "is false" from "adv_search[1_row][col2]"
|
|
16
|
+
#Then page should have disabled css "#advance_search_table tr td input.col3"
|
|
17
|
+
|
|
18
|
+
@javascript
|
|
19
|
+
Scenario: option "is false"
|
|
20
|
+
Given the following user exists:
|
|
21
|
+
| first name | last name | active |
|
|
22
|
+
| John | Smith | false |
|
|
23
|
+
| Mary | Jane | true |
|
|
24
|
+
Given I visit advance_search page
|
|
25
|
+
When I select "active" from "adv_search[1_row][col1]"
|
|
26
|
+
When I select "is false" from "adv_search[1_row][col2]"
|
|
27
|
+
When I press "Search"
|
|
28
|
+
Then I should see "Search result: 1 record found"
|
|
29
|
+
Then async verify that user "first_name" is "John"
|
|
30
|
+
Then async verify that user "last_name" is "Smith"
|
|
31
|
+
|
|
32
|
+
@javascript
|
|
33
|
+
Scenario: option "is true"
|
|
34
|
+
Given the following user exists:
|
|
35
|
+
| first name | last name | active |
|
|
36
|
+
| Mary | Jane | true |
|
|
37
|
+
| John | Smith | false |
|
|
38
|
+
Given I visit advance_search page
|
|
39
|
+
When I select "active" from "adv_search[1_row][col1]"
|
|
40
|
+
When I select "is true" from "adv_search[1_row][col2]"
|
|
41
|
+
When I press "Search"
|
|
42
|
+
Then I should see "Search result: 1 record found"
|
|
43
|
+
Then async verify that user "first_name" is "Mary"
|
|
44
|
+
Then async verify that user "last_name" is "Jane"
|
|
45
|
+
|
|
46
|
+
@javascript
|
|
47
|
+
Scenario: option "is null"
|
|
48
|
+
Given the following user exists:
|
|
49
|
+
| first name | last name | active |
|
|
50
|
+
| John | Smith | false |
|
|
51
|
+
| Mary | Jane | true |
|
|
52
|
+
Given first user's value for active is nil
|
|
53
|
+
Given I visit advance_search page
|
|
54
|
+
When I select "active" from "adv_search[1_row][col1]"
|
|
55
|
+
When I select "is null" from "adv_search[1_row][col2]"
|
|
56
|
+
When I press "Search"
|
|
57
|
+
Then I should see "Search result: 1 record found"
|
|
58
|
+
Then async verify that user "first_name" is "John"
|
|
59
|
+
Then async verify that user "last_name" is "Smith"
|
|
60
|
+
|
|
61
|
+
@javascript
|
|
62
|
+
Scenario: option "is not null"
|
|
63
|
+
Given the following user exists:
|
|
64
|
+
| first name | last name | active |
|
|
65
|
+
| Mary | Jane | true |
|
|
66
|
+
| John | Smith | false |
|
|
67
|
+
Given last user's value for active is nil
|
|
68
|
+
Given I visit advance_search page
|
|
69
|
+
When I select "active" from "adv_search[1_row][col1]"
|
|
70
|
+
When I select "is not null" from "adv_search[1_row][col2]"
|
|
71
|
+
When I press "Search"
|
|
72
|
+
Then I should see "Search result: 1 record found"
|
|
73
|
+
Then async verify that user "first_name" is "Mary"
|
|
74
|
+
Then async verify that user "last_name" is "Jane"
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
Feature: Advance Search datetime
|
|
2
|
+
|
|
3
|
+
@javascript
|
|
4
|
+
Scenario: test dropdown for datetime
|
|
5
|
+
Given a user exists
|
|
6
|
+
Given I visit advance_search page
|
|
7
|
+
When I select "created_at" from "adv_search[1_row][col1]"
|
|
8
|
+
Then page should have css "#advance_search_table tr td select.col2"
|
|
9
|
+
When I select "is null" from "adv_search[1_row][col2]"
|
|
10
|
+
#Then page should have disabled css "#advance_search_table tr td input.col3"
|
|
11
|
+
When I select "is not null" from "adv_search[1_row][col2]"
|
|
12
|
+
#Then page should have disabled css "#advance_search_table tr td input.col3"
|
|
13
|
+
When I select "on" from "adv_search[1_row][col2]"
|
|
14
|
+
Then async page should have text as current date for "#advance_search_table tr td input.col3"
|
|
15
|
+
When I select "on or before" from "adv_search[1_row][col2]"
|
|
16
|
+
Then async page should have text as current date for "#advance_search_table tr td input.col3"
|
|
17
|
+
When I select "on or after" from "adv_search[1_row][col2]"
|
|
18
|
+
Then async page should have text as current date for "#advance_search_table tr td input.col3"
|
|
19
|
+
|
|
20
|
+
@javascript
|
|
21
|
+
Scenario: option "is null"
|
|
22
|
+
Given the following user exists:
|
|
23
|
+
| first name | last name | born_at |
|
|
24
|
+
| John | Smith | |
|
|
25
|
+
| Mary | Jane | 03-November-2010 |
|
|
26
|
+
Given I visit advance_search page
|
|
27
|
+
When I select "born_at" from "adv_search[1_row][col1]"
|
|
28
|
+
When I select "is null" from "adv_search[1_row][col2]"
|
|
29
|
+
When I press "Search"
|
|
30
|
+
Then I should see "Search result: 1 record found"
|
|
31
|
+
Then async verify that user "first_name" is "John"
|
|
32
|
+
Then async verify that user "last_name" is "Smith"
|
|
33
|
+
|
|
34
|
+
@javascript
|
|
35
|
+
Scenario: option "is not null"
|
|
36
|
+
Given the following user exists:
|
|
37
|
+
| first name | last name | born_at |
|
|
38
|
+
| Mary | Jane | 03-November-2010 |
|
|
39
|
+
| John | Smith | |
|
|
40
|
+
Given I visit advance_search page
|
|
41
|
+
When I select "born_at" from "adv_search[1_row][col1]"
|
|
42
|
+
When I select "is not null" from "adv_search[1_row][col2]"
|
|
43
|
+
When I press "Search"
|
|
44
|
+
Then I should see "Search result: 1 record found"
|
|
45
|
+
Then async verify that user "first_name" is "Mary"
|
|
46
|
+
Then async verify that user "last_name" is "Jane"
|
|
47
|
+
|
|
48
|
+
@javascript
|
|
49
|
+
Scenario: option "on"
|
|
50
|
+
Given the following user exists:
|
|
51
|
+
| first name | last name | born_at |
|
|
52
|
+
| Mary | Jane | 03-November-2010 |
|
|
53
|
+
| John | Smith | 14-November-2010 |
|
|
54
|
+
Given I visit advance_search page
|
|
55
|
+
When I select "born_at" from "adv_search[1_row][col1]"
|
|
56
|
+
When I select "on" from "adv_search[1_row][col2]"
|
|
57
|
+
When I fill in "adv_search[1_row][col3]" with "03-November-2010"
|
|
58
|
+
When I press "Search"
|
|
59
|
+
Then I should see "Search result: 1 record found"
|
|
60
|
+
Then async verify that user "first_name" is "Mary"
|
|
61
|
+
Then async verify that user "last_name" is "Jane"
|
|
62
|
+
|
|
63
|
+
@javascript
|
|
64
|
+
Scenario: option "on or after"
|
|
65
|
+
Given the following user exists:
|
|
66
|
+
| first name | last name | born_at |
|
|
67
|
+
| John | Smith | 14-November-2010 |
|
|
68
|
+
| Mary | Jane | 03-November-2010 |
|
|
69
|
+
Given I visit advance_search page
|
|
70
|
+
When I select "born_at" from "adv_search[1_row][col1]"
|
|
71
|
+
When I select "on or after" from "adv_search[1_row][col2]"
|
|
72
|
+
When I fill in "adv_search[1_row][col3]" with "05-November-2010"
|
|
73
|
+
When I press "Search"
|
|
74
|
+
Then I should see "Search result: 1 record found"
|
|
75
|
+
Then async verify that user "first_name" is "John"
|
|
76
|
+
Then async verify that user "last_name" is "Smith"
|
|
77
|
+
|
|
78
|
+
@javascript
|
|
79
|
+
Scenario: option "on or before"
|
|
80
|
+
Given the following user exists:
|
|
81
|
+
| first name | last name | born_at |
|
|
82
|
+
| Mary | Jane | 03-November-2010 |
|
|
83
|
+
| John | Smith | 14-November-2010 |
|
|
84
|
+
Given I visit advance_search page
|
|
85
|
+
When I select "born_at" from "adv_search[1_row][col1]"
|
|
86
|
+
When I select "on or before" from "adv_search[1_row][col2]"
|
|
87
|
+
When I fill in "adv_search[1_row][col3]" with "05-November-2010"
|
|
88
|
+
When I press "Search"
|
|
89
|
+
Then I should see "Search result: 1 record found"
|
|
90
|
+
Then async verify that user "first_name" is "Mary"
|
|
91
|
+
Then async verify that user "last_name" is "Jane"
|
|
92
|
+
|
|
93
|
+
@javascript
|
|
94
|
+
Scenario: invalid integer value
|
|
95
|
+
Given I visit advance_search page
|
|
96
|
+
When I select "born_at" from "adv_search[1_row][col1]"
|
|
97
|
+
When I select "on" from "adv_search[1_row][col2]"
|
|
98
|
+
When I fill in "adv_search[1_row][col3]" with "xyz"
|
|
99
|
+
When I press "Search"
|
|
100
|
+
Then async I should see "xyz is not a valid date"
|
|
101
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Feature: Advance search delete all
|
|
2
|
+
|
|
3
|
+
@javascript
|
|
4
|
+
Scenario: delete all
|
|
5
|
+
Given the following user exists:
|
|
6
|
+
| first name | last name |
|
|
7
|
+
| John | Smith |
|
|
8
|
+
| Mary | Jane |
|
|
9
|
+
| Jennifer | Jane |
|
|
10
|
+
Given I visit advance_search page
|
|
11
|
+
When I select "first_name" from "adv_search[1_row][col1]"
|
|
12
|
+
When I select "is exactly" from "adv_search[1_row][col2]"
|
|
13
|
+
When I fill in "adv_search[1_row][col3]" with "John"
|
|
14
|
+
When I press "Search"
|
|
15
|
+
Then I should see "Search result: 1 record found"
|
|
16
|
+
Then async verify that user "first_name" is "John"
|
|
17
|
+
Then async verify that user "last_name" is "Smith"
|
|
18
|
+
When async click "Delete All"
|
|
19
|
+
Then async verify that number of "User" records is "2"
|
|
20
|
+
Then asyc I should see "1 record deleted"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Feature: Advance search destroy all
|
|
2
|
+
|
|
3
|
+
@javascript
|
|
4
|
+
Scenario: destroy all
|
|
5
|
+
Given the following user exists:
|
|
6
|
+
| first name | last name |
|
|
7
|
+
| John | Smith |
|
|
8
|
+
| Mary | Jane |
|
|
9
|
+
| Jennifer | Jane |
|
|
10
|
+
Given I visit advance_search page
|
|
11
|
+
When I select "first_name" from "adv_search[1_row][col1]"
|
|
12
|
+
When I select "is exactly" from "adv_search[1_row][col2]"
|
|
13
|
+
When I fill in "adv_search[1_row][col3]" with "John"
|
|
14
|
+
When I press "Search"
|
|
15
|
+
Then I should see "Search result: 1 record found"
|
|
16
|
+
Then async verify that user "first_name" is "John"
|
|
17
|
+
Then async verify that user "last_name" is "Smith"
|
|
18
|
+
When async click "Destroy All"
|
|
19
|
+
Then async verify that number of "User" records is "2"
|
|
20
|
+
Then async I should see "1 record destroyed"
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
Feature: Advance Search for integer
|
|
2
|
+
|
|
3
|
+
@javascript
|
|
4
|
+
Scenario: Advance Search for an integer
|
|
5
|
+
Given a user exists
|
|
6
|
+
Given I visit advance_search page
|
|
7
|
+
When I select "age" from "adv_search[1_row][col1]"
|
|
8
|
+
Then page should have css "#advance_search_table tr td select.col2"
|
|
9
|
+
When I select "is equal to" from "adv_search[1_row][col2]"
|
|
10
|
+
Then page should have css "#advance_search_table tr td input.col3"
|
|
11
|
+
When I select "is less than" from "adv_search[1_row][col2]"
|
|
12
|
+
Then page should have css "#advance_search_table tr td input.col3"
|
|
13
|
+
When I select "is greater than" from "adv_search[1_row][col2]"
|
|
14
|
+
Then page should have css "#advance_search_table tr td input.col3"
|
|
15
|
+
|
|
16
|
+
@javascript
|
|
17
|
+
Scenario: option "is equal to"
|
|
18
|
+
Given the following user exists:
|
|
19
|
+
| first name | last name | age |
|
|
20
|
+
| John | Smith | 40 |
|
|
21
|
+
| Mary | Jane | 30 |
|
|
22
|
+
Given I visit advance_search page
|
|
23
|
+
When I select "age" from "adv_search[1_row][col1]"
|
|
24
|
+
When I select "is equal to" from "adv_search[1_row][col2]"
|
|
25
|
+
When I fill in "adv_search[1_row][col3]" with "40"
|
|
26
|
+
When I press "Search"
|
|
27
|
+
Then I should see "Search result: 1 record found"
|
|
28
|
+
Then async verify that user "first_name" is "John"
|
|
29
|
+
Then async verify that user "last_name" is "Smith"
|
|
30
|
+
|
|
31
|
+
@javascript
|
|
32
|
+
Scenario: option "is less than"
|
|
33
|
+
Given the following user exists:
|
|
34
|
+
| first name | last name | age |
|
|
35
|
+
| Mary | Jane | 30 |
|
|
36
|
+
| John | Smith | 40 |
|
|
37
|
+
Given I visit advance_search page
|
|
38
|
+
When I select "age" from "adv_search[1_row][col1]"
|
|
39
|
+
When I select "is less than" from "adv_search[1_row][col2]"
|
|
40
|
+
When I fill in "adv_search[1_row][col3]" with "35"
|
|
41
|
+
When I press "Search"
|
|
42
|
+
Then I should see "Search result: 1 record found"
|
|
43
|
+
Then async verify that user "first_name" is "Mary"
|
|
44
|
+
Then async verify that user "last_name" is "Jane"
|
|
45
|
+
|
|
46
|
+
@javascript
|
|
47
|
+
Scenario: option "is greater than"
|
|
48
|
+
Given the following user exists:
|
|
49
|
+
| first name | last name | age |
|
|
50
|
+
| John | Smith | 40 |
|
|
51
|
+
| Mary | Jane | 30 |
|
|
52
|
+
Given I visit advance_search page
|
|
53
|
+
When I select "age" from "adv_search[1_row][col1]"
|
|
54
|
+
When I select "is greater than" from "adv_search[1_row][col2]"
|
|
55
|
+
When I fill in "adv_search[1_row][col3]" with "35"
|
|
56
|
+
When I press "Search"
|
|
57
|
+
Then I should see "Search result: 1 record found"
|
|
58
|
+
Then async verify that user "first_name" is "John"
|
|
59
|
+
Then async verify that user "last_name" is "Smith"
|
|
60
|
+
|
|
61
|
+
@javascript
|
|
62
|
+
Scenario: invalid integer value
|
|
63
|
+
Given I visit advance_search page
|
|
64
|
+
When I select "age" from "adv_search[1_row][col1]"
|
|
65
|
+
When I select "is greater than" from "adv_search[1_row][col2]"
|
|
66
|
+
When I fill in "adv_search[1_row][col3]" with "xyz"
|
|
67
|
+
When I press "Search"
|
|
68
|
+
Then async I should see "xyz is not a valid integer"
|
|
69
|
+
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
Feature: Advance search multiple rows
|
|
2
|
+
|
|
3
|
+
@javascript
|
|
4
|
+
Scenario: two rows
|
|
5
|
+
Given the following user exists:
|
|
6
|
+
| first name | last name | age |
|
|
7
|
+
| Mary | Jane | 30 |
|
|
8
|
+
| Jennifer | Jane | 30 |
|
|
9
|
+
| John | Smith | 40 |
|
|
10
|
+
| John | Vander | 30 |
|
|
11
|
+
Given I visit advance_search page
|
|
12
|
+
When I select "first_name" from "adv_search[1_row][col1]"
|
|
13
|
+
When I select "is exactly" from "adv_search[1_row][col2]"
|
|
14
|
+
When I fill in "adv_search[1_row][col3]" with "John"
|
|
15
|
+
|
|
16
|
+
When I follow "add_row_link_1"
|
|
17
|
+
|
|
18
|
+
When I select "last_name" from "adv_search[2_row][col1]"
|
|
19
|
+
When I select "is exactly" from "adv_search[2_row][col2]"
|
|
20
|
+
When I fill in "adv_search[2_row][col3]" with "Smith"
|
|
21
|
+
|
|
22
|
+
When I press "Search"
|
|
23
|
+
Then I should see "Search result: 1 record found"
|
|
24
|
+
Then async verify that user "first_name" is "John"
|
|
25
|
+
Then async verify that user "last_name" is "Smith"
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@javascript
|
|
29
|
+
Scenario: three rows
|
|
30
|
+
Given the following user exists:
|
|
31
|
+
| first name | last name | age |
|
|
32
|
+
| John | Smith | 40 |
|
|
33
|
+
| John | Smith | 30 |
|
|
34
|
+
| Mary | Jane | 30 |
|
|
35
|
+
| Mary | Jane | 40 |
|
|
36
|
+
| Jennifer | Jane | 30 |
|
|
37
|
+
Given I visit advance_search page
|
|
38
|
+
When I select "first_name" from "adv_search[1_row][col1]"
|
|
39
|
+
When I select "is exactly" from "adv_search[1_row][col2]"
|
|
40
|
+
When I fill in "adv_search[1_row][col3]" with "John"
|
|
41
|
+
|
|
42
|
+
When I follow "add_row_link_1"
|
|
43
|
+
When I select "last_name" from "adv_search[2_row][col1]"
|
|
44
|
+
When I select "is exactly" from "adv_search[2_row][col2]"
|
|
45
|
+
When I fill in "adv_search[2_row][col3]" with "Smith"
|
|
46
|
+
|
|
47
|
+
When I follow "add_row_link_1"
|
|
48
|
+
When I select "age" from "adv_search[3_row][col1]"
|
|
49
|
+
When I select "is equal to" from "adv_search[3_row][col2]"
|
|
50
|
+
When I fill in "adv_search[3_row][col3]" with "40"
|
|
51
|
+
|
|
52
|
+
When I press "Search"
|
|
53
|
+
Then I should see "Search result: 1 record found"
|
|
54
|
+
Then async verify that user "first_name" is "John"
|
|
55
|
+
Then async verify that user "last_name" is "Smith"
|
|
56
|
+
|
|
57
|
+
@javascript
|
|
58
|
+
Scenario: First built two extra rows and then kill the last row
|
|
59
|
+
Given the following user exists:
|
|
60
|
+
| first name | last name | age |
|
|
61
|
+
| Mary | Jane | 30 |
|
|
62
|
+
| Jennifer | Jane | 30 |
|
|
63
|
+
| John | Smith | 40 |
|
|
64
|
+
| John | Smith | 30 |
|
|
65
|
+
Given I visit advance_search page
|
|
66
|
+
When I select "first_name" from "adv_search[1_row][col1]"
|
|
67
|
+
When I select "is exactly" from "adv_search[1_row][col2]"
|
|
68
|
+
When I fill in "adv_search[1_row][col3]" with "John"
|
|
69
|
+
|
|
70
|
+
When I follow "add_row_link_1"
|
|
71
|
+
When I select "last_name" from "adv_search[2_row][col1]"
|
|
72
|
+
When I select "is exactly" from "adv_search[2_row][col2]"
|
|
73
|
+
When I fill in "adv_search[2_row][col3]" with "Smith"
|
|
74
|
+
|
|
75
|
+
When I follow "add_row_link_1"
|
|
76
|
+
When I select "age" from "adv_search[3_row][col1]"
|
|
77
|
+
When I select "is equal to" from "adv_search[3_row][col2]"
|
|
78
|
+
When I fill in "adv_search[3_row][col3]" with "40"
|
|
79
|
+
|
|
80
|
+
Then page should have id "remove_row_3"
|
|
81
|
+
|
|
82
|
+
When I follow "remove_row_3"
|
|
83
|
+
Then I should see "2" rows in table "advance_search_table"
|
|
84
|
+
When I press "Search"
|
|
85
|
+
Then I should see "Search result: 2 records found"
|
|
86
|
+
Then async verify that user "first_name" is "John"
|
|
87
|
+
Then async verify that user "last_name" is "Smith"
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
Feature: Advance Search for string
|
|
2
|
+
|
|
3
|
+
@javascript
|
|
4
|
+
Scenario: Advance Search for a text field
|
|
5
|
+
Given a user exists
|
|
6
|
+
Given I visit advance_search page
|
|
7
|
+
When I select "description" from "adv_search[1_row][col1]"
|
|
8
|
+
Then page should have css "#advance_search_table tr td select.col2"
|
|
9
|
+
When I select "Contains" from "adv_search[1_row][col2]"
|
|
10
|
+
Then page should have css "#advance_search_table tr td input.col3"
|
|
11
|
+
When I select "Doesn't Contain" from "adv_search[1_row][col2]"
|
|
12
|
+
Then page should have css "#advance_search_table tr td input.col3"
|
|
13
|
+
When I select "is null" from "adv_search[1_row][col2]"
|
|
14
|
+
#Then page should have disabled css "#advance_search_table tr td input.col3"
|
|
15
|
+
When I select "is not null" from "adv_search[1_row][col2]"
|
|
16
|
+
#Then page should have disabled css "#advance_search_table tr td input.col3"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@javascript
|
|
20
|
+
Scenario: testing drop down behavior
|
|
21
|
+
Given a user exists
|
|
22
|
+
Given I visit advance_search page
|
|
23
|
+
Then page should have css "#advance_search_form"
|
|
24
|
+
Then page should have css "#advance_search_table"
|
|
25
|
+
Then page should have css "#advance_search_table tr td select.col1"
|
|
26
|
+
When I select "first_name" from "adv_search[1_row][col1]"
|
|
27
|
+
Then page should have css "#advance_search_table tr td select.col2"
|
|
28
|
+
When I select "contains" from "adv_search[1_row][col2]"
|
|
29
|
+
Then page should have css "#advance_search_table tr td input.col3"
|
|
30
|
+
When I select "is exactly" from "adv_search[1_row][col2]"
|
|
31
|
+
Then page should have css "#advance_search_table tr td input.col3"
|
|
32
|
+
When I select "doesn't contain" from "adv_search[1_row][col2]"
|
|
33
|
+
Then page should have css "#advance_search_table tr td input.col3"
|
|
34
|
+
When I select "is null" from "adv_search[1_row][col2]"
|
|
35
|
+
#Then page should have disabled css "#advance_search_table tr td input.col3"
|
|
36
|
+
When I select "is not null" from "adv_search[1_row][col2]"
|
|
37
|
+
#Then page should have disabled css "#advance_search_table tr td input.col3"
|
|
38
|
+
|
|
39
|
+
@javascript
|
|
40
|
+
Scenario: option "is not null"
|
|
41
|
+
Given the following user exists:
|
|
42
|
+
| first name | last name |
|
|
43
|
+
| Mary | Jane |
|
|
44
|
+
| John | |
|
|
45
|
+
Given I visit advance_search page
|
|
46
|
+
When I select "last_name" from "adv_search[1_row][col1]"
|
|
47
|
+
When I select "is not null" from "adv_search[1_row][col2]"
|
|
48
|
+
When I press "Search"
|
|
49
|
+
Then I should see "Search result: 1 record found"
|
|
50
|
+
Then async verify that user "first_name" is "Mary"
|
|
51
|
+
Then async verify that user "last_name" is "Jane"
|
|
52
|
+
|
|
53
|
+
@javascript
|
|
54
|
+
Scenario: option "is null"
|
|
55
|
+
Given the following user exists:
|
|
56
|
+
| first name | last name |
|
|
57
|
+
| John | |
|
|
58
|
+
| Mary | Jane |
|
|
59
|
+
| Jennifer | Jane |
|
|
60
|
+
Given I visit advance_search page
|
|
61
|
+
When I select "last_name" from "adv_search[1_row][col1]"
|
|
62
|
+
When I select "is null" from "adv_search[1_row][col2]"
|
|
63
|
+
When I press "Search"
|
|
64
|
+
Then I should see "Search result: 1 record found"
|
|
65
|
+
Then async verify that user "first_name" is "John"
|
|
66
|
+
|
|
67
|
+
@javascript
|
|
68
|
+
Scenario: option "is exactly"
|
|
69
|
+
Given the following user exists:
|
|
70
|
+
| first name | last name |
|
|
71
|
+
| John | Smith |
|
|
72
|
+
| Mary | Jane |
|
|
73
|
+
| Jennifer | Jane |
|
|
74
|
+
Given I visit advance_search page
|
|
75
|
+
When I select "first_name" from "adv_search[1_row][col1]"
|
|
76
|
+
When I select "is exactly" from "adv_search[1_row][col2]"
|
|
77
|
+
When I fill in "adv_search[1_row][col3]" with "John"
|
|
78
|
+
When I press "Search"
|
|
79
|
+
Then I should see "Search result: 1 record found"
|
|
80
|
+
Then async verify that user "first_name" is "John"
|
|
81
|
+
Then async verify that user "last_name" is "Smith"
|
|
82
|
+
|
|
83
|
+
@javascript
|
|
84
|
+
Scenario: option "contains"
|
|
85
|
+
Given the following user exists:
|
|
86
|
+
| first name | last name |
|
|
87
|
+
| Mary | Jane |
|
|
88
|
+
| Jennifer | Jane |
|
|
89
|
+
| Jenny | Aniston |
|
|
90
|
+
| John | Smith |
|
|
91
|
+
Given I visit advance_search page
|
|
92
|
+
When I select "first_name" from "adv_search[1_row][col1]"
|
|
93
|
+
When I select "contains" from "adv_search[1_row][col2]"
|
|
94
|
+
When I fill in "adv_search[1_row][col3]" with "Jenn"
|
|
95
|
+
When I press "Search"
|
|
96
|
+
Then I should see "Search result: 2 records found"
|
|
97
|
+
Then async verify that user "first_name" is "Jenny"
|
|
98
|
+
Then async verify that user "last_name" is "Aniston"
|
|
99
|
+
|
|
100
|
+
@javascript
|
|
101
|
+
Scenario: search for a text that does not exist
|
|
102
|
+
Given the following user exists:
|
|
103
|
+
| first name | last name |
|
|
104
|
+
| Mary | Jane |
|
|
105
|
+
| Jennifer | Jane |
|
|
106
|
+
| Jenny | Aniston |
|
|
107
|
+
| John | Smith |
|
|
108
|
+
Given I visit advance_search page
|
|
109
|
+
When I select "first_name" from "adv_search[1_row][col1]"
|
|
110
|
+
When I select "contains" from "adv_search[1_row][col2]"
|
|
111
|
+
When I fill in "adv_search[1_row][col3]" with "xxxxxxxxxxxxx"
|
|
112
|
+
When I press "Search"
|
|
113
|
+
Then I should see "Search result: 0 records found"
|
|
114
|
+
|
|
115
|
+
@javascript
|
|
116
|
+
Scenario: option "does not contain"
|
|
117
|
+
Given the following user exists:
|
|
118
|
+
| first name | last name |
|
|
119
|
+
| John | Smith |
|
|
120
|
+
| Mary | Jane |
|
|
121
|
+
| Jennifer | Jane |
|
|
122
|
+
| Jenny | Aniston |
|
|
123
|
+
Given I visit advance_search page
|
|
124
|
+
When I select "first_name" from "adv_search[1_row][col1]"
|
|
125
|
+
When I select "doesn't contain" from "adv_search[1_row][col2]"
|
|
126
|
+
When I fill in "adv_search[1_row][col3]" with "Jenn"
|
|
127
|
+
When I press "Search"
|
|
128
|
+
Then I should see "Search result: 2 records found"
|
|
129
|
+
Then async verify that user "first_name" is "John"
|
|
130
|
+
Then async verify that user "last_name" is "Smith"
|