Replace trace-related fixtures with factories.
[rails.git] / test / controllers / swf_controller_test.rb
1 require "test_helper"
2
3 class SwfControllerTest < ActionController::TestCase
4   api_fixtures
5
6   ##
7   # test all routes which lead to this controller
8   def test_routes
9     assert_routing(
10       { :path => "/api/0.6/swf/trackpoints", :method => :get },
11       { :controller => "swf", :action => "trackpoints" }
12     )
13   end
14
15   ##
16   # basic test that trackpoints at least returns some sort of flash movie
17   def test_trackpoints
18     create(:trace, :visibility => "trackable", :latitude => 51.51, :longitude => -0.14, :user => users(:public_user)) do |trace|
19       create(:tracepoint, :trace => trace, :trackid => 1, :latitude => (51.510 * GeoRecord::SCALE).to_i, :longitude => (-0.140 * GeoRecord::SCALE).to_i)
20       create(:tracepoint, :trace => trace, :trackid => 2, :latitude => (51.511 * GeoRecord::SCALE).to_i, :longitude => (-0.141 * GeoRecord::SCALE).to_i)
21     end
22     create(:trace, :visibility => "identifiable", :latitude => 51.512, :longitude => 0.142) do |trace|
23       create(:tracepoint, :trace => trace, :latitude => (51.512 * GeoRecord::SCALE).to_i, :longitude => (0.142 * GeoRecord::SCALE).to_i)
24     end
25
26     get :trackpoints, :xmin => -1, :xmax => 1, :ymin => 51, :ymax => 52, :baselong => 0, :basey => 0, :masterscale => 1
27     assert_response :success
28     assert_equal "application/x-shockwave-flash", response.content_type
29     assert_match /^FWS/, response.body
30     assert_equal 80, response.body.length
31
32     get :trackpoints, :xmin => -1, :xmax => 1, :ymin => 51, :ymax => 52, :baselong => 0, :basey => 0, :masterscale => 1, :token => users(:normal_user).tokens.create.token
33     assert_response :success
34     assert_equal "application/x-shockwave-flash", response.content_type
35     assert_match /^FWS/, response.body
36     assert_equal 67, response.body.length
37
38     get :trackpoints, :xmin => -1, :xmax => 1, :ymin => 51, :ymax => 52, :baselong => 0, :basey => 0, :masterscale => 1, :token => users(:public_user).tokens.create.token
39     assert_response :success
40     assert_equal "application/x-shockwave-flash", response.content_type
41     assert_match /^FWS/, response.body
42     assert_equal 74, response.body.length
43   end
44 end