Skip to content

Commit

Permalink
add cucumber scenarios for new preferences
Browse files Browse the repository at this point in the history
  • Loading branch information
lrbalt committed Aug 18, 2011
1 parent 555311b commit 40a7cc2
Show file tree
Hide file tree
Showing 9 changed files with 70 additions and 11 deletions.
15 changes: 13 additions & 2 deletions app/views/preferences/_authentication.html.erb
Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@
<label><%= t('preferences.token_header') %></label><br/><br/>
<%= t('preferences.token_description') %>: <span class="highlight"><%= current_user.token %></span>
<br/><br/>

<div class="pref_new_token">

<% # TODO: make remote AJAX call for new token %>
<%= button_to t('preferences.generate_new_token'), refresh_token_user_path(current_user),
:confirm => t('preferences.generate_new_token_confirm') %>
<%= link_to(
t('preferences.generate_new_token'),
refresh_token_user_path( current_user ),
:method => :post,
:confirm => t('preferences.generate_new_token_confirm'),
:id=>'prefs_new_token') %>

</div>
<br/>

<% if Tracks::Config.auth_schemes.length > 1 %>
Expand Down
4 changes: 2 additions & 2 deletions app/views/shared/_footer.rhtml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<div id="footer">
<p><%= t('footer.send_feedback', :version => TRACKS_VERSION) %>: <a href="http://www.assembla.com/spaces/tracks-tickets/tickets"><%= t('common.bugs')%></a> |
<p><%= t('footer.send_feedback', :version => TRACKS_VERSION) %>: <a href="http://www.assembla.com/spaces/tracks-tickets/tickets"><%= t('common.bugs')%></a> |
<a href="http://www.getontracks.org/forums/"><%= t('common.forum')%></a> |
<a href="http://www.getontracks.org/wiki/"><%= t('common.wiki')%></a> |
<a href="https://github.com/TracksApp/tracks/wiki"><%= t('common.wiki')%></a> |
<a href="mailto:[email protected]?subject=Tracks feedback"><%= t('common.email')%></a> |
<a href="http://www.getontracks.org/"><%= t('common.website')%></a> |
<a href="http://getontracks.org/tracks/contribute"><%= t('common.contribute')%></a></p>
Expand Down
31 changes: 27 additions & 4 deletions features/preferences.feature
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,33 @@ Feature: Manage preferences
And I have logged in as "testuser" with password "secret"

Scenario: I can change my password
Given this is a pending scenario
When I go to the preferences page
And I set the password and confirmation to "secret123"
When I log out of Tracks
And I go to the login page
And I submit the login form as user "testuser" with password "secret"
Then I should see "Login unsuccessful"
When I submit the login form as user "testuser" with password "secret123"
Then I should see "Login successful"

Scenario: I can leave password field empty and the password will not be changed
When I go to the preferences page
And I set the password and confirmation to ""
When I log out of Tracks
And I go to the login page
And I submit the login form as user "testuser" with password ""
Then I should see "Login unsuccessful"
When I submit the login form as user "testuser" with password "secret"
Then I should see "Login successful"

Scenario: The password and the confirmation need to be the same
When I go to the preferences page
And I set the password to "secret" and confirmation to "wrong"
Then I should see "Password doesn't match confirmation"

Scenario: I can generate a new token
Given this is a pending scenario

Scenario: I can edit preferences
Given this is a pending scenario
When I go to the preferences page
Then I should see "Logout (testuser)"
When I edit my last name to "Tester"
Then I should see "Logout (Tester)"
6 changes: 5 additions & 1 deletion features/step_definitions/login_steps.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,14 @@
# use expire_session to force expiry of session
js = '$.ajax({type: "GET", url: "/login/expire_session", dataType: "script", async: false});'
selenium.run_script(js);

# force check of expiry bypassing timeout
js = '$.ajax({type: "GET", url: "/login/check_expiry", dataType: "script", async: false});'
selenium.run_script(js);

sleep(2)
end

When /^I log out of Tracks$/ do
When "I go to the logout page"
end
15 changes: 15 additions & 0 deletions features/step_definitions/preferences_steps.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
When /^I edit my last name to "([^"]*)"$/ do |last_name|
fill_in "user[last_name]", :with => last_name
click_button "prefs_submit"
end

When /^I set the password and confirmation to "([^"]*)"$/ do |new_password|
When "I set the password to \"#{new_password}\" and confirmation to \"#{new_password}\""
end

When /^I set the password to "([^"]*)" and confirmation to "([^"]*)"$/ do |new_password, new_password_confirmation|
fill_in "user[password]", :with => new_password
fill_in "user[password_confirmation]", :with => new_password_confirmation
click_button "prefs_submit"
end

2 changes: 1 addition & 1 deletion features/step_definitions/user_steps.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
User.delete_all
table.hashes.each do |hash|
user = Factory(:user, hash)
user.create_preference
user.create_preference({:locale => 'en'})
end
end

Expand Down
2 changes: 2 additions & 0 deletions features/support/paths.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ def path_to(page_name)
signup_path(options)
when /the login page/
login_path(options)
when /the logout page/
logout_path(options)
when /the notes page/
notes_path(options)
when /the calendar page/
Expand Down
2 changes: 1 addition & 1 deletion public/javascripts/application.js
Original file line number Diff line number Diff line change
Expand Up @@ -629,7 +629,7 @@ var ProjectItems = {

var UsersPage = {
setup_behavior: function() {
/* delete button to delete a usedr from the list */
/* delete button to delete a user from the list */
$('a.delete_user_button').live('click', function(evt){
var confirm_message = $(this).attr("x_confirm_message")
if(confirm(confirm_message)){
Expand Down
4 changes: 4 additions & 0 deletions public/stylesheets/standard.css
Original file line number Diff line number Diff line change
Expand Up @@ -478,6 +478,10 @@ body.preferences div.ui-tabs li a {
padding: 0.1em 1em;
}

body.preferences div.pref_new_token a {
color: #CC3334;
}

/* The notes which may be attached to an item */
.todo_notes {
margin: 5px;
Expand Down

0 comments on commit 40a7cc2

Please sign in to comment.