More work on test coverage

This commit is contained in:
Tom Hughes 2015-02-28 00:45:56 +00:00
parent 9ec625e352
commit 857f0f460b
5 changed files with 429 additions and 23 deletions

View file

@ -621,7 +621,7 @@ class AmfController < ApplicationController
return -1, t("application.setup_user_auth.blocked") if user.blocks.active.exists?
return -1, "You must accept the contributor terms before you can edit." if REQUIRE_TERMS_AGREED && user.terms_agreed.nil?
return -2, "Server error - way is only #{points.length} points long." if pointlist.length < 2
return -2, "Server error - way is only #{pointlist.length} points long." if pointlist.length < 2
return -1, "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1." unless tags_ok(attributes)
attributes = strip_non_xml_chars attributes
@ -738,7 +738,11 @@ class AmfController < ApplicationController
new_node = nil
Node.transaction do
if id > 0
node = Node.find(id)
begin
node = Node.find(id)
rescue ActiveRecord::RecordNotFound
return [-4, "node", id]
end
unless visible || node.ways.empty?
return -1, "Point #{id} has since become part of a way, so you cannot save it as a POI.", id, id, version
@ -782,14 +786,16 @@ class AmfController < ApplicationController
def getpoi(id, timestamp) #:doc:
amf_handle_error("'getpoi' #{id}", "node", id) do
id = id.to_i
n = Node.find(id)
v = n.version
unless timestamp == ""
n = OldNode.where("node_id = ? AND timestamp <= ?", id, timestamp).unredacted.order("timestamp DESC").first
n = Node.where(:id => id).first
if n
v = n.version
unless timestamp == ""
n = OldNode.where("node_id = ? AND timestamp <= ?", id, timestamp).unredacted.order("timestamp DESC").first
end
end
if n
return [0, "", n.id, n.lon, n.lat, n.tags, v]
return [0, "", id, n.lon, n.lat, n.tags, v]
else
return [-4, "node", id]
end

View file

@ -102,6 +102,7 @@ class Trace < ActiveRecord::Base
gzipped = filetype =~ /gzip compressed/
bzipped = filetype =~ /bzip2 compressed/
zipped = filetype =~ /Zip archive/
tarred = filetype =~ /tar archive/
if gzipped
mimetype = "application/x-gzip"
@ -109,6 +110,8 @@ class Trace < ActiveRecord::Base
mimetype = "application/x-bzip2"
elsif zipped
mimetype = "application/x-zip"
elsif tarred
mimetype = "application/x-tar"
else
mimetype = "application/gpx+xml"
end
@ -238,7 +241,7 @@ class Trace < ActiveRecord::Base
elsif bzipped
system("bunzip2 -c #{trace_name} > #{tmpfile.path}")
elsif zipped
system("unzip -p #{trace_name} -x '__MACOSX/*' > #{tmpfile.path}")
system("unzip -p #{trace_name} -x '__MACOSX/*' > #{tmpfile.path} 2> /dev/null")
end
tmpfile.unlink
@ -260,12 +263,8 @@ class Trace < ActiveRecord::Base
f_lon = 0
first = true
# If there are any existing points for this trace then delete
# them - we check for existing points first to avoid locking
# the table in the common case where there aren't any.
if Tracepoint.where(:gpx_id => id).exists?
Tracepoint.delete_all(:gpx_id => id)
end
# If there are any existing points for this trace then delete them
Tracepoint.delete_all(:gpx_id => id)
gpx.points do |point|
if first