+
+ basic_authorization(third_user.email, "test")
+
+ assert_difference "NoteComment.count", 1 do
+ assert_difference "ActionMailer::Base.deliveries.size", 2 do
+ post :comment, :params => { :id => note_with_comments_by_users.id, :text => "This is an additional comment", :format => "json" }
+ end
+ end
+ assert_response :success
+ js = ActiveSupport::JSON.decode(@response.body)
+ assert_not_nil js
+ assert_equal "Feature", js["type"]
+ assert_equal note_with_comments_by_users.id, js["properties"]["id"]
+ assert_equal "open", js["properties"]["status"]
+ assert_equal 4, js["properties"]["comments"].count
+ assert_equal "commented", js["properties"]["comments"].last["action"]
+ assert_equal "This is an additional comment", js["properties"]["comments"].last["text"]
+ assert_equal third_user.display_name, js["properties"]["comments"].last["user"]
+
+ email = ActionMailer::Base.deliveries.find { |e| e.to.first == first_user.email }
+ assert_not_nil email
+ assert_equal 1, email.to.length
+ assert_equal "[OpenStreetMap] #{third_user.display_name} has commented on one of your notes", email.subject
+ assert_equal first_user.email, email.to.first
+
+ email = ActionMailer::Base.deliveries.find { |e| e.to.first == second_user.email }
+ assert_not_nil email
+ assert_equal 1, email.to.length
+ assert_equal "[OpenStreetMap] #{third_user.display_name} has commented on a note you are interested in", email.subject
+
+ get :show, :params => { :id => note_with_comments_by_users.id, :format => "json" }
+ assert_response :success
+ js = ActiveSupport::JSON.decode(@response.body)
+ assert_not_nil js
+ assert_equal "Feature", js["type"]
+ assert_equal note_with_comments_by_users.id, js["properties"]["id"]
+ assert_equal "open", js["properties"]["status"]
+ assert_equal 4, js["properties"]["comments"].count
+ assert_equal "commented", js["properties"]["comments"].last["action"]
+ assert_equal "This is an additional comment", js["properties"]["comments"].last["text"]
+ assert_equal third_user.display_name, js["properties"]["comments"].last["user"]
+
+ ActionMailer::Base.deliveries.clear