user = token.user
user.status = "active"
user.email_valid = true
+ flash[:notice] = gravatar_status_message(user) if gravatar_enable(user)
user.save!
referer = token.referer
token.destroy
@user.email = @user.new_email
@user.new_email = nil
@user.email_valid = true
+ changed = gravatar_enable(@user)
if @user.save
- flash[:notice] = t "user.confirm_email.success"
+ flash[:notice] = (t "user.confirm_email.success") + (changed ? " " + gravatar_status_message(@user) : "")
else
flash[:errors] = @user.errors
end
!blocked
end
+
+ ##
+ # check if this user has a gravatar and set the user pref is true
+ def gravatar_enable(user)
+ # code from example https://en.gravatar.com/site/implement/images/ruby/
+ return false if user.image.present?
+ hash = Digest::MD5.hexdigest(user.email.downcase)
+ url = "https://www.gravatar.com/avatar/#{hash}?d=404" # without d=404 we will always get an image back
+ response = OSM.http_client.get(URI.parse(url))
+ oldsetting = user.image_use_gravatar
+ user.image_use_gravatar = response.success?
+ oldsetting != user.image_use_gravatar
+ end
+
+ ##
+ # display a message about th current status of the gravatar setting
+ def gravatar_status_message(user)
+ if user.image_use_gravatar
+ return t "user.account.gravatar.enabled"
+ else
+ return t "user.account.gravatar.disabled"
+ end
+ end
end
gravatar: "Use Gravatar"
link: "http://wiki.openstreetmap.org/wiki/Gravatar"
link text: "what is this?"
+ disabled: "No Gravatar for this email address."
+ enabled: "Display of your Gravatar has been enabled."
new image: "Add an image"
keep image: "Keep the current image"
delete image: "Remove the current image"
--- /dev/null
+class SetDefaultGravatarToFalseForPrivacy < ActiveRecord::Migration
+ def up
+ change_column :users, :image_use_gravatar, :boolean, :default => false
+ end
+
+ def down
+ change_column :users, :image_use_gravatar, :boolean, :default => true
+ end
+end
--- /dev/null
+#!/usr/bin/env ruby
+
+# require File.dirname(__FILE__) + "/../config/environment"
+
+start = 0
+User.where("image_use_gravatar AND id >=" + start.to_s).order("id").find_each do |user|
+ p "checked up to id " + user.id.to_s if user.id % 1000 == 0 # just give a rough indication where we are for restarting
+ next if user.image.present?
+ hash = Digest::MD5.hexdigest(user.email.downcase)
+ url = "https://www.gravatar.com/avatar/#{hash}?d=404" # without d=404 we will always get an image back
+ response = OSM.http_client.get(URI.parse(url))
+ user.image_use_gravatar = response.success?
+ user.save
+ sleep(1)
+end
+
+exit 0
assert_match /confirmation code has expired or does not exist/, flash[:error]
end
+ ##
+ # test if testing for a gravatar works
+ # this happens when the email is actually changed
+ # which is triggered by the confirmation mail
+ def test_gravatar_auto_enable
+ with_http_stubs "gravatar" do
+ # switch to email that has a gravatar
+ user = users(:first_gravatar_user)
+ confirm_string = user.tokens.create.token
+ # precondition gravatar should be turned off
+ assert !user.image_use_gravatar
+ post :confirm_email, :confirm_string => confirm_string
+ assert_response :redirect
+ assert_redirected_to :action => :account, :display_name => user.display_name
+ assert_match /Confirmed your change of email address/, flash[:notice]
+ # gravatar use should now be enabled
+ assert User.find(users(:first_gravatar_user).id).image_use_gravatar
+ end
+ end
+
+ def test_gravatar_auto_disable
+ with_http_stubs "gravatar" do
+ # switch to email without a gravatar
+ user = users(:second_gravatar_user)
+ confirm_string = user.tokens.create.token
+ # precondition gravatar should be turned on
+ assert user.image_use_gravatar
+ post :confirm_email, :confirm_string => confirm_string
+ assert_response :redirect
+ assert_redirected_to :action => :account, :display_name => user.display_name
+ assert_match /Confirmed your change of email address/, flash[:notice]
+ # gravatar use should now be disabled
+ assert !User.find(users(:second_gravatar_user).id).image_use_gravatar
+ end
+ end
+
def test_terms_new_user
get :terms, {}, { :new_user => User.new }
assert_response :success
assert_select "contributor-terms", :count => 1 do
assert_select "[agreed='true']"
end
- assert_select "img", :count => 1
+ assert_select "img", :count => 0
assert_select "roles", :count => 1 do
assert_select "role", :count => 0
end
assert_select "contributor-terms", :count => 1 do
assert_select "[agreed='true'][pd='false']"
end
- assert_select "img", :count => 1
+ assert_select "img", :count => 0
assert_select "roles", :count => 1 do
assert_select "role", :count => 0
end
get :list, :page => 3
assert_response :success
assert_template :list
- assert_select "table#user_list tr", :count => 23
+ assert_select "table#user_list tr", :count => 25
end
def test_list_post_confirm
terms_agreed: "2010-01-01 11:22:33"
terms_seen: true
languages: en
+
+first_gravatar_user:
+ id: 23
+ email: g1@OpenStreetMap.org
+ new_email: new_g1@OpenStreetMap.org
+ status: active
+ pass_crypt: <%= Digest::MD5.hexdigest('test') %>
+ creation_time: "2008-05-01 01:23:45"
+ display_name: gravatar1
+ data_public: true
+ description: some test description
+ terms_agreed: "2010-01-01 11:22:33"
+ terms_seen: true
+ creation_ip: "1.2.3.4"
+
+second_gravatar_user:
+ id: 24
+ email: g2@OpenStreetMap.org
+ new_email: new_g2@OpenStreetMap.org
+ image_use_gravatar: true
+ status: active
+ pass_crypt: <%= Digest::MD5.hexdigest('test') %>
+ creation_time: "2008-05-01 01:23:45"
+ display_name: gravatar2
+ data_public: true
+ description: some test description
+ terms_agreed: "2010-01-01 11:22:33"
+ terms_seen: true
+ creation_ip: "1.2.3.4"
-/?geoit=XML&postal=A1B+2C3: |
- <?xml version="1.0" encoding="UTF-8"?>
- <geodata>
- <latt>47.172520</latt>
- <longt>-55.440515</longt>
- <postal>A1B2C3</postal>
- <standard>
- <stnumber>1</stnumber>
- <staddress/>
- <city>ST. JOHN&'S</city>
- <prov>NL</prov>
- <confidence>0.9</confidence>
- </standard>
- </geodata>
+/?geoit=XML&postal=A1B+2C3:
+ code: 200
+ body: |
+ <?xml version="1.0" encoding="UTF-8"?>
+ <geodata>
+ <latt>47.172520</latt>
+ <longt>-55.440515</longt>
+ <postal>A1B2C3</postal>
+ <standard>
+ <stnumber>1</stnumber>
+ <staddress/>
+ <city>ST. JOHN&'S</city>
+ <prov>NL</prov>
+ <confidence>0.9</confidence>
+ </standard>
+ </geodata>
-/?geoit=XML&postal=k1a+0b1: |
- <?xml version="1.0" encoding="UTF-8"?>
- <geodata>
- <latt>45.375437</latt>
- <longt>-75.691041</longt>
- <postal>K1A0B1</postal>
- <standard>
- <stnumber>1</stnumber>
- <staddress/>
- <city>OTTAWA</city>
- <prov>ON</prov>
- <confidence>0.9</confidence>
- </standard>
- </geodata>
-
-/?geoit=XML&postal=Q0Q+0Q0: |
- <?xml version="1.0" encoding="UTF-8"?>
- <geodata>
- <error>
- <code>008</code>
- <description>Your request did not produce any results. Check your spelling and try again.</description>
- </error>
- <latt/>
- <longt>-</longt>
- <postal>Q0Q0Q0</postal>
- <standard>
- <stnumber>1</stnumber>
- <staddress/>
- <city/>
- <prov/>
- <confidence>0.9</confidence>
- </standard>
- </geodata>
+/?geoit=XML&postal=k1a+0b1:
+ code: 200
+ body: |
+ <?xml version="1.0" encoding="UTF-8"?>
+ <geodata>
+ <latt>45.375437</latt>
+ <longt>-75.691041</longt>
+ <postal>K1A0B1</postal>
+ <standard>
+ <stnumber>1</stnumber>
+ <staddress/>
+ <city>OTTAWA</city>
+ <prov>ON</prov>
+ <confidence>0.9</confidence>
+ </standard>
+ </geodata>
+
+/?geoit=XML&postal=Q0Q+0Q0:
+ code: 200
+ body: |
+ <?xml version="1.0" encoding="UTF-8"?>
+ <geodata>
+ <error>
+ <code>008</code>
+ <description>Your request did not produce any results. Check your spelling and try again.</description>
+ </error>
+ <latt/>
+ <longt>-</longt>
+ <postal>Q0Q0Q0</postal>
+ <standard>
+ <stnumber>1</stnumber>
+ <staddress/>
+ <city/>
+ <prov/>
+ <confidence>0.9</confidence>
+ </standard>
+ </geodata>
-/service/csv?zip=90210: "34.088808, -118.40612, Beverly Hills, CA, 90210"
-/service/csv?zip=00000: "1: couldn't find this zip code: 00000! sorry"
+/service/csv?zip=90210:
+ code: 200
+ body: "34.088808, -118.40612, Beverly Hills, CA, 90210"
+/service/csv?zip=00000:
+ code: 200
+ body: "1: couldn't find this zip code: 00000! sorry"
-/search?lang=en&maxRows=20&q=Hoddesdon&username=dummy: |
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <geonames style="MEDIUM">
- <totalResultsCount>1</totalResultsCount>
- <geoname>
- <toponymName>Hoddesdon</toponymName>
- <name>Hoddesdon</name>
- <lat>51.76148</lat>
- <lng>-0.01144</lng>
- <geonameId>2646807</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>P</fcl>
- <fcode>PPL</fcode>
- </geoname>
- </geonames>
-
-/search?lang=en&maxRows=20&q=Broxbourne&username=dummy: |
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <geonames style="MEDIUM">
- <totalResultsCount>17</totalResultsCount>
- <geoname>
- <toponymName>Broxbourne</toponymName>
- <name>Broxbourne</name>
- <lat>51.74712</lat>
- <lng>-0.01923</lng>
- <geonameId>2654481</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>P</fcl>
- <fcode>PPL</fcode>
- </geoname>
- <geoname>
- <toponymName>Broxbourne District</toponymName>
- <name>Broxbourne District</name>
- <lat>51.73026</lat>
- <lng>-0.04821</lng>
- <geonameId>7290563</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>A</fcl>
- <fcode>ADM3</fcode>
- </geoname>
- <geoname>
- <toponymName>Cheshunt</toponymName>
- <name>Cheshunt</name>
- <lat>51.70791</lat>
- <lng>-0.03739</lng>
- <geonameId>2653232</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>P</fcl>
- <fcode>PPL</fcode>
- </geoname>
- <geoname>
- <toponymName>Hoddesdon</toponymName>
- <name>Hoddesdon</name>
- <lat>51.76148</lat>
- <lng>-0.01144</lng>
- <geonameId>2646807</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>P</fcl>
- <fcode>PPL</fcode>
- </geoname>
- <geoname>
- <toponymName>Waltham Cross</toponymName>
- <name>Waltham Cross</name>
- <lat>51.68905</lat>
- <lng>-0.0333</lng>
- <geonameId>2634842</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>P</fcl>
- <fcode>PPL</fcode>
- </geoname>
- <geoname>
- <toponymName>Goffs Oak</toponymName>
- <name>Goffs Oak</name>
- <lat>51.71015</lat>
- <lng>-0.0872</lng>
- <geonameId>2648362</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>P</fcl>
- <fcode>PPL</fcode>
- </geoname>
- <geoname>
- <toponymName>Wormley</toponymName>
- <name>Wormley</name>
- <lat>51.7324</lat>
- <lng>-0.0242</lng>
- <geonameId>2633535</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>P</fcl>
- <fcode>PPL</fcode>
- </geoname>
- <geoname>
- <toponymName>Broxbourne</toponymName>
- <name>Broxbourne</name>
- <lat>-27.50314</lat>
- <lng>151.378</lng>
- <geonameId>8792801</geonameId>
- <countryCode>AU</countryCode>
- <countryName>Australia</countryName>
- <fcl>S</fcl>
- <fcode>HMSD</fcode>
- </geoname>
- <geoname>
- <toponymName>Lee Valley White Water Centre</toponymName>
- <name>Lee Valley White Water Centre</name>
- <lat>51.68814</lat>
- <lng>-0.01682</lng>
- <geonameId>7670551</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>S</fcl>
- <fcode>FCL</fcode>
- </geoname>
- <geoname>
- <toponymName>Cheshunt Railway Station</toponymName>
- <name>Cheshunt Railway Station</name>
- <lat>51.703</lat>
- <lng>-0.024</lng>
- <geonameId>6952282</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>S</fcl>
- <fcode>RSTN</fcode>
- </geoname>
- <geoname>
- <toponymName>Theobalds Grove Railway Station</toponymName>
- <name>Theobalds Grove Railway Station</name>
- <lat>51.692</lat>
- <lng>-0.035</lng>
- <geonameId>6953715</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>S</fcl>
- <fcode>RSTN</fcode>
- </geoname>
- <geoname>
- <toponymName>Waltham Cross Railway Station</toponymName>
- <name>Waltham Cross Railway Station</name>
- <lat>51.685</lat>
- <lng>-0.027</lng>
- <geonameId>6953801</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>S</fcl>
- <fcode>RSTN</fcode>
- </geoname>
- <geoname>
- <toponymName>Rye House Station</toponymName>
- <name>Rye House Station</name>
- <lat>51.76938</lat>
- <lng>0.00562</lng>
- <geonameId>6691700</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>S</fcl>
- <fcode>RSTN</fcode>
- </geoname>
- <geoname>
- <toponymName>Broxbourne Station</toponymName>
- <name>Broxbourne Station</name>
- <lat>51.74697</lat>
- <lng>-0.01105</lng>
- <geonameId>6691701</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>S</fcl>
- <fcode>RSTN</fcode>
- </geoname>
- <geoname>
- <toponymName>Broxbornebury Park</toponymName>
- <name>Broxbornebury Park</name>
- <lat>51.75252</lat>
- <lng>-0.03839</lng>
- <geonameId>6286417</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>S</fcl>
- <fcode>CSTL</fcode>
- </geoname>
- <geoname>
- <toponymName>Marriott Cheshunt</toponymName>
- <name>Marriott Cheshunt</name>
- <lat>51.7208</lat>
- <lng>-0.0324</lng>
- <geonameId>6512481</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>S</fcl>
- <fcode>HTL</fcode>
- </geoname>
- <geoname>
- <toponymName>Cheshunt Community Hospital</toponymName>
- <name>Cheshunt Community Hospital</name>
- <lat>51.68396</lat>
- <lng>-0.03951</lng>
- <geonameId>6289233</geonameId>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <fcl>S</fcl>
- <fcode>HSP</fcode>
- </geoname>
- </geonames>
-
-/countrySubdivision?lang=en&lat=51.7632&lng=-0.0076&username=dummy: |
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <geonames>
- <countrySubdivision>
- <countryCode>GB</countryCode>
- <countryName>United Kingdom</countryName>
- <adminCode1>ENG</adminCode1>
- <adminName1>England</adminName1>
- <code type="ISO3166-2">ENG</code>
- <distance>0.0</distance>
- </countrySubdivision>
- </geonames>
+/search?lang=en&maxRows=20&q=Hoddesdon&username=dummy:
+ code: 200
+ body: |
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <geonames style="MEDIUM">
+ <totalResultsCount>1</totalResultsCount>
+ <geoname>
+ <toponymName>Hoddesdon</toponymName>
+ <name>Hoddesdon</name>
+ <lat>51.76148</lat>
+ <lng>-0.01144</lng>
+ <geonameId>2646807</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>P</fcl>
+ <fcode>PPL</fcode>
+ </geoname>
+ </geonames>
+
+/search?lang=en&maxRows=20&q=Broxbourne&username=dummy:
+ code: 200
+ body: |
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <geonames style="MEDIUM">
+ <totalResultsCount>17</totalResultsCount>
+ <geoname>
+ <toponymName>Broxbourne</toponymName>
+ <name>Broxbourne</name>
+ <lat>51.74712</lat>
+ <lng>-0.01923</lng>
+ <geonameId>2654481</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>P</fcl>
+ <fcode>PPL</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Broxbourne District</toponymName>
+ <name>Broxbourne District</name>
+ <lat>51.73026</lat>
+ <lng>-0.04821</lng>
+ <geonameId>7290563</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>A</fcl>
+ <fcode>ADM3</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Cheshunt</toponymName>
+ <name>Cheshunt</name>
+ <lat>51.70791</lat>
+ <lng>-0.03739</lng>
+ <geonameId>2653232</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>P</fcl>
+ <fcode>PPL</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Hoddesdon</toponymName>
+ <name>Hoddesdon</name>
+ <lat>51.76148</lat>
+ <lng>-0.01144</lng>
+ <geonameId>2646807</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>P</fcl>
+ <fcode>PPL</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Waltham Cross</toponymName>
+ <name>Waltham Cross</name>
+ <lat>51.68905</lat>
+ <lng>-0.0333</lng>
+ <geonameId>2634842</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>P</fcl>
+ <fcode>PPL</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Goffs Oak</toponymName>
+ <name>Goffs Oak</name>
+ <lat>51.71015</lat>
+ <lng>-0.0872</lng>
+ <geonameId>2648362</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>P</fcl>
+ <fcode>PPL</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Wormley</toponymName>
+ <name>Wormley</name>
+ <lat>51.7324</lat>
+ <lng>-0.0242</lng>
+ <geonameId>2633535</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>P</fcl>
+ <fcode>PPL</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Broxbourne</toponymName>
+ <name>Broxbourne</name>
+ <lat>-27.50314</lat>
+ <lng>151.378</lng>
+ <geonameId>8792801</geonameId>
+ <countryCode>AU</countryCode>
+ <countryName>Australia</countryName>
+ <fcl>S</fcl>
+ <fcode>HMSD</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Lee Valley White Water Centre</toponymName>
+ <name>Lee Valley White Water Centre</name>
+ <lat>51.68814</lat>
+ <lng>-0.01682</lng>
+ <geonameId>7670551</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>S</fcl>
+ <fcode>FCL</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Cheshunt Railway Station</toponymName>
+ <name>Cheshunt Railway Station</name>
+ <lat>51.703</lat>
+ <lng>-0.024</lng>
+ <geonameId>6952282</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>S</fcl>
+ <fcode>RSTN</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Theobalds Grove Railway Station</toponymName>
+ <name>Theobalds Grove Railway Station</name>
+ <lat>51.692</lat>
+ <lng>-0.035</lng>
+ <geonameId>6953715</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>S</fcl>
+ <fcode>RSTN</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Waltham Cross Railway Station</toponymName>
+ <name>Waltham Cross Railway Station</name>
+ <lat>51.685</lat>
+ <lng>-0.027</lng>
+ <geonameId>6953801</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>S</fcl>
+ <fcode>RSTN</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Rye House Station</toponymName>
+ <name>Rye House Station</name>
+ <lat>51.76938</lat>
+ <lng>0.00562</lng>
+ <geonameId>6691700</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>S</fcl>
+ <fcode>RSTN</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Broxbourne Station</toponymName>
+ <name>Broxbourne Station</name>
+ <lat>51.74697</lat>
+ <lng>-0.01105</lng>
+ <geonameId>6691701</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>S</fcl>
+ <fcode>RSTN</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Broxbornebury Park</toponymName>
+ <name>Broxbornebury Park</name>
+ <lat>51.75252</lat>
+ <lng>-0.03839</lng>
+ <geonameId>6286417</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>S</fcl>
+ <fcode>CSTL</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Marriott Cheshunt</toponymName>
+ <name>Marriott Cheshunt</name>
+ <lat>51.7208</lat>
+ <lng>-0.0324</lng>
+ <geonameId>6512481</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>S</fcl>
+ <fcode>HTL</fcode>
+ </geoname>
+ <geoname>
+ <toponymName>Cheshunt Community Hospital</toponymName>
+ <name>Cheshunt Community Hospital</name>
+ <lat>51.68396</lat>
+ <lng>-0.03951</lng>
+ <geonameId>6289233</geonameId>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <fcl>S</fcl>
+ <fcode>HSP</fcode>
+ </geoname>
+ </geonames>
+
+/countrySubdivision?lang=en&lat=51.7632&lng=-0.0076&username=dummy:
+ code: 200
+ body: |
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <geonames>
+ <countrySubdivision>
+ <countryCode>GB</countryCode>
+ <countryName>United Kingdom</countryName>
+ <adminCode1>ENG</adminCode1>
+ <adminName1>England</adminName1>
+ <code type="ISO3166-2">ENG</code>
+ <distance>0.0</distance>
+ </countrySubdivision>
+ </geonames>
--- /dev/null
+/avatar/842bc90353fac655450e62223e4e105d?d=404 :
+ code: 404
+ body: Ignored, test for new_g2@openstreetmap.org
+
+/avatar/d2e95ef0ac6933916bf42ff1ee4eca4b?d=404 :
+ code: 200
+ body: Ignored, test for new_g1@openstreetmap.org
-/search?accept-language=&format=xml&q=Hoddesdon&viewbox=-0.559%2C51.766%2C0.836%2C51.217: |
- <?xml version="1.0" encoding="UTF-8" ?>
- <searchresults timestamp='Sun, 01 Mar 15 20:02:29 +0000' attribution='Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright' querystring='Hoddesdon' viewbox='-0.559,51.766,0.836,51.217' polygon='false' exclude_place_ids='110741' more_url='http://nominatim.openstreetmap.org/search?format=xml&exclude_place_ids=110741&viewbox=-0.559%2C51.766%2C0.836%2C51.217&q=Hoddesdon'>
- <place place_id='110741' osm_type='node' osm_id='18007599' place_rank='18' boundingbox="51.7216709,51.8016709,-0.0512898,0.0287102" lat='51.7616709' lon='-0.0112898' display_name='Hoddesdon, Hertfordshire, East of England, England, United Kingdom' class='place' type='town' importance='0.50547792382382' icon='http://nominatim.openstreetmap.org/images/mapicons/poi_place_town.p.20.png'/>
- </searchresults>
-
-/search?accept-language=&format=xml&q=Broxbourne&viewbox=-0.559%2C51.766%2C0.836%2C51.217: |
- <?xml version="1.0" encoding="UTF-8" ?>
- <searchresults timestamp='Sun, 01 Mar 15 20:42:25 +0000' attribution='Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright' querystring='Broxbourne' viewbox='-0.559,51.766,0.836,51.217' polygon='false' exclude_place_ids='150696,127984131,109724' more_url='http://nominatim.openstreetmap.org/search?format=xml&exclude_place_ids=150696,127984131,109724&viewbox=-0.559%2C51.766%2C0.836%2C51.217&q=Broxbourne'>
- <place place_id='150696' osm_type='node' osm_id='28825933' place_rank='20' boundingbox="51.7265723,51.7665723,-0.0390782,0.0009218" lat='51.7465723' lon='-0.0190782' display_name='Broxbourne, Hertfordshire, East of England, England, United Kingdom' class='place' type='suburb' importance='0.52141385408531' icon='http://nominatim.openstreetmap.org/images/mapicons/poi_place_village.p.20.png'/>
- <place place_id='127984131' osm_type='relation' osm_id='2677978' place_rank='16' boundingbox="51.6808751,51.7806237,-0.114204,0.0145267" lat='51.73083995' lon='-0.0579457295222991' display_name='Broxbourne, Hertfordshire, East of England, England, United Kingdom' class='boundary' type='administrative' importance='0.46' icon='http://nominatim.openstreetmap.org/images/mapicons/poi_boundary_administrative.p.20.png'/>
- <place place_id='109724' osm_type='node' osm_id='17044599' place_rank='30' boundingbox="51.7418469,51.7518469,-0.0156773,-0.0056773" lat='51.7468469' lon='-0.0106773' display_name='Broxbourne, Stafford Drive, Broxbourne, Hertfordshire, East of England, England, United Kingdom' class='railway' type='station' importance='0.111' icon='http://nominatim.openstreetmap.org/images/mapicons/transport_train_station2.p.20.png'/>
- </searchresults>
-
-/reverse?accept-language=&lat=51.7632&lon=-0.0076&zoom=15: |
- <?xml version="1.0" encoding="UTF-8"?>
- <reversegeocode timestamp="Sun, 01 Mar 15 22:49:45 +0000" attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright" querystring="accept-language=&lat=51.7632&lon=-0.0076&zoom=15">
- <result place_id="150696" osm_type="node" osm_id="28825933" ref="Broxbourne" lat="51.7465723" lon="-0.0190782">Broxbourne, Hertfordshire, East of England, England, United Kingdom</result>
- <addressparts>
- <suburb>Broxbourne</suburb>
- <city>Broxbourne</city>
- <county>Hertfordshire</county>
- <state_district>East of England</state_district>
- <state>England</state>
- <country>United Kingdom</country>
- <country_code>gb</country_code>
- </addressparts>
- </reversegeocode>
-
-/reverse?accept-language=&lat=51.7632&lon=-0.0076&zoom=17: |
- <?xml version="1.0" encoding="UTF-8"?>
- <reversegeocode timestamp="Sun, 01 Mar 15 22:58:16 +0000" attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright" querystring="accept-language=&lat=51.7632&lon=-0.0076&zoom=17">
- <result place_id="46484711" osm_type="way" osm_id="3489841" ref="A1170" lat="51.7634883" lon="-0.0088373">Dinant Link Road, Broxbourne, Hertfordshire, East of England, England, EN11 8HX, United Kingdom</result>
- <addressparts>
- <road>Dinant Link Road</road>
- <suburb>Broxbourne</suburb>
- <city>Broxbourne</city>
- <county>Hertfordshire</county>
- <state_district>East of England</state_district>
- <state>England</state>
- <postcode>EN11 8HX</postcode>
- <country>United Kingdom</country>
- <country_code>gb</country_code>
- </addressparts>
- </reversegeocode>
+/search?accept-language=&format=xml&q=Hoddesdon&viewbox=-0.559%2C51.766%2C0.836%2C51.217:
+ code: 200
+ body: |
+ <?xml version="1.0" encoding="UTF-8" ?>
+ <searchresults timestamp='Sun, 01 Mar 15 20:02:29 +0000' attribution='Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright' querystring='Hoddesdon' viewbox='-0.559,51.766,0.836,51.217' polygon='false' exclude_place_ids='110741' more_url='http://nominatim.openstreetmap.org/search?format=xml&exclude_place_ids=110741&viewbox=-0.559%2C51.766%2C0.836%2C51.217&q=Hoddesdon'>
+ <place place_id='110741' osm_type='node' osm_id='18007599' place_rank='18' boundingbox="51.7216709,51.8016709,-0.0512898,0.0287102" lat='51.7616709' lon='-0.0112898' display_name='Hoddesdon, Hertfordshire, East of England, England, United Kingdom' class='place' type='town' importance='0.50547792382382' icon='http://nominatim.openstreetmap.org/images/mapicons/poi_place_town.p.20.png'/>
+ </searchresults>
+
+/search?accept-language=&format=xml&q=Broxbourne&viewbox=-0.559%2C51.766%2C0.836%2C51.217:
+ code: 200
+ body: |
+ <?xml version="1.0" encoding="UTF-8" ?>
+ <searchresults timestamp='Sun, 01 Mar 15 20:42:25 +0000' attribution='Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright' querystring='Broxbourne' viewbox='-0.559,51.766,0.836,51.217' polygon='false' exclude_place_ids='150696,127984131,109724' more_url='http://nominatim.openstreetmap.org/search?format=xml&exclude_place_ids=150696,127984131,109724&viewbox=-0.559%2C51.766%2C0.836%2C51.217&q=Broxbourne'>
+ <place place_id='150696' osm_type='node' osm_id='28825933' place_rank='20' boundingbox="51.7265723,51.7665723,-0.0390782,0.0009218" lat='51.7465723' lon='-0.0190782' display_name='Broxbourne, Hertfordshire, East of England, England, United Kingdom' class='place' type='suburb' importance='0.52141385408531' icon='http://nominatim.openstreetmap.org/images/mapicons/poi_place_village.p.20.png'/>
+ <place place_id='127984131' osm_type='relation' osm_id='2677978' place_rank='16' boundingbox="51.6808751,51.7806237,-0.114204,0.0145267" lat='51.73083995' lon='-0.0579457295222991' display_name='Broxbourne, Hertfordshire, East of England, England, United Kingdom' class='boundary' type='administrative' importance='0.46' icon='http://nominatim.openstreetmap.org/images/mapicons/poi_boundary_administrative.p.20.png'/>
+ <place place_id='109724' osm_type='node' osm_id='17044599' place_rank='30' boundingbox="51.7418469,51.7518469,-0.0156773,-0.0056773" lat='51.7468469' lon='-0.0106773' display_name='Broxbourne, Stafford Drive, Broxbourne, Hertfordshire, East of England, England, United Kingdom' class='railway' type='station' importance='0.111' icon='http://nominatim.openstreetmap.org/images/mapicons/transport_train_station2.p.20.png'/>
+ </searchresults>
+
+/reverse?accept-language=&lat=51.7632&lon=-0.0076&zoom=15:
+ code: 200
+ body: |
+ <?xml version="1.0" encoding="UTF-8"?>
+ <reversegeocode timestamp="Sun, 01 Mar 15 22:49:45 +0000" attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright" querystring="accept-language=&lat=51.7632&lon=-0.0076&zoom=15">
+ <result place_id="150696" osm_type="node" osm_id="28825933" ref="Broxbourne" lat="51.7465723" lon="-0.0190782">Broxbourne, Hertfordshire, East of England, England, United Kingdom</result>
+ <addressparts>
+ <suburb>Broxbourne</suburb>
+ <city>Broxbourne</city>
+ <county>Hertfordshire</county>
+ <state_district>East of England</state_district>
+ <state>England</state>
+ <country>United Kingdom</country>
+ <country_code>gb</country_code>
+ </addressparts>
+ </reversegeocode>
+
+/reverse?accept-language=&lat=51.7632&lon=-0.0076&zoom=17:
+ code: 200
+ body: |
+ <?xml version="1.0" encoding="UTF-8"?>
+ <reversegeocode timestamp="Sun, 01 Mar 15 22:58:16 +0000" attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright" querystring="accept-language=&lat=51.7632&lon=-0.0076&zoom=17">
+ <result place_id="46484711" osm_type="way" osm_id="3489841" ref="A1170" lat="51.7634883" lon="-0.0088373">Dinant Link Road, Broxbourne, Hertfordshire, East of England, England, EN11 8HX, United Kingdom</result>
+ <addressparts>
+ <road>Dinant Link Road</road>
+ <suburb>Broxbourne</suburb>
+ <city>Broxbourne</city>
+ <county>Hertfordshire</county>
+ <state_district>East of England</state_district>
+ <state>England</state>
+ <postcode>EN11 8HX</postcode>
+ <country>United Kingdom</country>
+ <country_code>gb</country_code>
+ </addressparts>
+ </reversegeocode>
-/cgi/geocoder.fcgi?format=text&postcode=CV4+7AL: |
- # Easting,Northing,Matched Postcode,Latitude,Longitude
- 429926,276058,'CV4 7AL',52.381748701968,-1.56176420939232
+/cgi/geocoder.fcgi?format=text&postcode=CV4+7AL:
+ code: 200
+ body: |
+ # Easting,Northing,Matched Postcode,Latitude,Longitude
+ 429926,276058,'CV4 7AL',52.381748701968,-1.56176420939232
-/cgi/geocoder.fcgi?format=text&postcode=XX9+9XX: |
- Error: Postcode area 'XX' not found, postcode probably invalid
+/cgi/geocoder.fcgi?format=text&postcode=XX9+9XX:
+ code: 200
+ body: |
+ Error: Postcode area 'XX' not found, postcode probably invalid
end
def test_visible
- assert_equal 20, User.visible.count
+ assert_equal 22, User.visible.count
assert_raise ActiveRecord::RecordNotFound do
User.visible.find(users(:suspended_user).id)
end
end
def test_active
- assert_equal 19, User.active.count
+ assert_equal 21, User.active.count
assert_raise ActiveRecord::RecordNotFound do
User.active.find(users(:inactive_user).id)
end
end
def test_identifiable
- assert_equal 21, User.identifiable.count
+ assert_equal 23, User.identifiable.count
assert_raise ActiveRecord::RecordNotFound do
User.identifiable.find(users(:normal_user).id)
end
OSM.http_client = Faraday.new do |builder|
builder.adapter :test do |stub|
- stubs.each do |url, body|
- stub.get(url) { |_env| [200, {}, body] }
+ stubs.each do |url, response|
+ stub.get(url) { |_env| [response["code"], {}, response["body"]] }
end
end
end