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")
|
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
|
old_way = OldWay.where("way_id = ? AND timestamp <= ?", id, timestamp).unredacted.order("timestamp DESC").first
|
||||||
unless old_way.nil?
|
unless old_way.nil?
|
||||||
points = old_way.get_nodes_revert(timestamp)
|
if old_way.visible
|
||||||
unless old_way.visible
|
points = old_way.get_nodes_revert(timestamp)
|
||||||
|
else
|
||||||
return [-1, "Sorry, the way was deleted at that time - please revert to a previous version.", id]
|
return [-1, "Sorry, the way was deleted at that time - please revert to a previous version.", id]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -306,7 +306,7 @@ class AmfControllerTest < ActionController::TestCase
|
||||||
# NOTE: looks from the API changes that this now expects a timestamp
|
# NOTE: looks from the API changes that this now expects a timestamp
|
||||||
# instead of a version number...
|
# instead of a version number...
|
||||||
# try to get version 1
|
# try to get version 1
|
||||||
v1 = ways(:way_with_versions_v1)
|
v1 = ways(:way_with_versions_v2)
|
||||||
{ latest.id => "",
|
{ latest.id => "",
|
||||||
v1.way_id => v1.timestamp.strftime("%d %b %Y, %H:%M:%S")
|
v1.way_id => v1.timestamp.strftime("%d %b %Y, %H:%M:%S")
|
||||||
}.each do |id, t|
|
}.each do |id, t|
|
||||||
|
@ -346,7 +346,7 @@ class AmfControllerTest < ActionController::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_getway_old_nonexistent
|
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)
|
v1 = ways(:way_with_versions_v1)
|
||||||
# try to get last visible version of non-existent way
|
# try to get last visible version of non-existent way
|
||||||
# try to get specific version of non-existent way
|
# try to get specific version of non-existent way
|
||||||
|
@ -366,6 +366,23 @@ class AmfControllerTest < ActionController::TestCase
|
||||||
end
|
end
|
||||||
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
|
def test_getway_history
|
||||||
latest = current_ways(:way_with_versions)
|
latest = current_ways(:way_with_versions)
|
||||||
oldest = ways(:way_with_versions_v1)
|
oldest = ways(:way_with_versions_v1)
|
||||||
|
|
|
@ -558,6 +558,42 @@ class UserLoginTest < ActionDispatch::IntegrationTest
|
||||||
assert_select "div.flash.error", /your account has been suspended/
|
assert_select "div.flash.error", /your account has been suspended/
|
||||||
end
|
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
|
def test_login_openid_success
|
||||||
OmniAuth.config.add_mock(:openid, :uid => "http://localhost:1123/john.doe")
|
OmniAuth.config.add_mock(:openid, :uid => "http://localhost:1123/john.doe")
|
||||||
|
|
||||||
|
@ -580,6 +616,29 @@ class UserLoginTest < ActionDispatch::IntegrationTest
|
||||||
assert_select "span.username", "openIDuser"
|
assert_select "span.username", "openIDuser"
|
||||||
end
|
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
|
def test_login_openid_connection_failed
|
||||||
OmniAuth.config.mock_auth[:openid] = :connection_failed
|
OmniAuth.config.mock_auth[:openid] = :connection_failed
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue