A few more edge cases
This commit is contained in:
parent
35be112092
commit
23f568cf3a
3 changed files with 81 additions and 4 deletions
|
@ -376,8 +376,9 @@ class AmfController < ApplicationController
|
|||
timestamp = DateTime.strptime(timestamp.to_s, "%d %b %Y, %H:%M:%S")
|
||||
old_way = OldWay.where("way_id = ? AND timestamp <= ?", id, timestamp).unredacted.order("timestamp DESC").first
|
||||
unless old_way.nil?
|
||||
if old_way.visible
|
||||
points = old_way.get_nodes_revert(timestamp)
|
||||
unless old_way.visible
|
||||
else
|
||||
return [-1, "Sorry, the way was deleted at that time - please revert to a previous version.", id]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -306,7 +306,7 @@ class AmfControllerTest < ActionController::TestCase
|
|||
# NOTE: looks from the API changes that this now expects a timestamp
|
||||
# instead of a version number...
|
||||
# try to get version 1
|
||||
v1 = ways(:way_with_versions_v1)
|
||||
v1 = ways(:way_with_versions_v2)
|
||||
{ latest.id => "",
|
||||
v1.way_id => v1.timestamp.strftime("%d %b %Y, %H:%M:%S")
|
||||
}.each do |id, t|
|
||||
|
@ -346,7 +346,7 @@ class AmfControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
def test_getway_old_nonexistent
|
||||
# try to get the last version+10 (shoudn't exist)
|
||||
# try to get the last version-10 (shoudn't exist)
|
||||
v1 = ways(:way_with_versions_v1)
|
||||
# try to get last visible version of non-existent way
|
||||
# try to get specific version of non-existent way
|
||||
|
@ -366,6 +366,23 @@ class AmfControllerTest < ActionController::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_getway_old_invisible
|
||||
v1 = ways(:invisible_way)
|
||||
# try to get deleted version
|
||||
[[v1.way_id, (v1.timestamp + 10).strftime("%d %b %Y, %H:%M:%S")]
|
||||
].each do |id, t|
|
||||
amf_content "getway_old", "/1", [id, t]
|
||||
post :amf_read
|
||||
assert_response :success
|
||||
amf_parse_response
|
||||
returned_way = amf_result("/1")
|
||||
assert_equal -1, returned_way[0]
|
||||
assert returned_way[3].nil?
|
||||
assert returned_way[4].nil?
|
||||
assert returned_way[5].nil?
|
||||
end
|
||||
end
|
||||
|
||||
def test_getway_history
|
||||
latest = current_ways(:way_with_versions)
|
||||
oldest = ways(:way_with_versions_v1)
|
||||
|
|
|
@ -558,6 +558,42 @@ class UserLoginTest < ActionDispatch::IntegrationTest
|
|||
assert_select "div.flash.error", /your account has been suspended/
|
||||
end
|
||||
|
||||
def test_login_email_password_remember_me
|
||||
user = users(:normal_user)
|
||||
|
||||
get "/login"
|
||||
assert_response :redirect
|
||||
assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
|
||||
follow_redirect!
|
||||
assert_response :success
|
||||
|
||||
post "/login", :username => user.email, :password => "test", :remember_me => true, :referer => "/history"
|
||||
assert_response :redirect
|
||||
follow_redirect!
|
||||
assert_response :success
|
||||
assert_template "changeset/history"
|
||||
assert_select "span.username", "test"
|
||||
assert session.key?(:_remember_for)
|
||||
end
|
||||
|
||||
def test_login_username_password_remember_me
|
||||
user = users(:normal_user)
|
||||
|
||||
get "/login"
|
||||
assert_response :redirect
|
||||
assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
|
||||
follow_redirect!
|
||||
assert_response :success
|
||||
|
||||
post "/login", :username => user.display_name, :password => "test", :remember_me => true, :referer => "/history"
|
||||
assert_response :redirect
|
||||
follow_redirect!
|
||||
assert_response :success
|
||||
assert_template "changeset/history"
|
||||
assert_select "span.username", "test"
|
||||
assert session.key?(:_remember_for)
|
||||
end
|
||||
|
||||
def test_login_openid_success
|
||||
OmniAuth.config.add_mock(:openid, :uid => "http://localhost:1123/john.doe")
|
||||
|
||||
|
@ -580,6 +616,29 @@ class UserLoginTest < ActionDispatch::IntegrationTest
|
|||
assert_select "span.username", "openIDuser"
|
||||
end
|
||||
|
||||
def test_login_openid_remember_me
|
||||
OmniAuth.config.add_mock(:openid, :uid => "http://localhost:1123/john.doe")
|
||||
|
||||
get "/login"
|
||||
assert_response :redirect
|
||||
assert_redirected_to :controller => :user, :action => :login, :cookie_test => true
|
||||
follow_redirect!
|
||||
assert_response :success
|
||||
post "/login", :openid_url => "http://localhost:1123/john.doe", :remember_me_openid => true, :referer => "/history"
|
||||
assert_response :redirect
|
||||
assert_redirected_to auth_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
|
||||
follow_redirect!
|
||||
assert_response :redirect
|
||||
assert_redirected_to auth_success_path(:provider => "openid", :openid_url => "http://localhost:1123/john.doe", :origin => "/login")
|
||||
follow_redirect!
|
||||
assert_response :redirect
|
||||
follow_redirect!
|
||||
assert_response :success
|
||||
assert_template "changeset/history"
|
||||
assert_select "span.username", "openIDuser"
|
||||
assert session.key?(:_remember_for)
|
||||
end
|
||||
|
||||
def test_login_openid_connection_failed
|
||||
OmniAuth.config.mock_auth[:openid] = :connection_failed
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue