summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeiko Bernloehr <Heiko.Bernloehr@FreeIT.de>2017-03-15 00:20:23 +0100
committerHeiko Bernloehr <Heiko.Bernloehr@FreeIT.de>2017-03-15 00:20:23 +0100
commit692068ba05d1c4c53b2cb1ba081f9c33fa358b9a (patch)
treec4bbe2f62930ae3a4a4f265ae34e7cf5c0cf23fe
parent5a14e7ac5661c5ad326ec41d94c193b0b8a72636 (diff)
downloadecs-692068ba05d1c4c53b2cb1ba081f9c33fa358b9a.tar.gz
ecs-692068ba05d1c4c53b2cb1ba081f9c33fa358b9a.zip
Adjust test code.
-rw-r--r--test/controllers/events_controller_test.rb3
-rw-r--r--test/controllers/memberships_controller_test.rb5
-rw-r--r--test/controllers/messages_controller_test.rb479
-rw-r--r--test/integration/community_messages_test.rb2
-rw-r--r--test/integration/ressource_test.rb16
-rw-r--r--test/test_helper.rb40
6 files changed, 309 insertions, 236 deletions
diff --git a/test/controllers/events_controller_test.rb b/test/controllers/events_controller_test.rb
index 28e5fce..2b03809 100644
--- a/test/controllers/events_controller_test.rb
+++ b/test/controllers/events_controller_test.rb
@@ -20,7 +20,8 @@ require 'test_helper'
class EventsControllerTest < ActionController::TestCase
test "index" do
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
+ request.headers["X-EcsAuthId"] = identities(:ulm_id1).name
+ request.headers["Accept"] = "application/json"
get :index
assert_response 200
end
diff --git a/test/controllers/memberships_controller_test.rb b/test/controllers/memberships_controller_test.rb
index 9612d60..ce24020 100644
--- a/test/controllers/memberships_controller_test.rb
+++ b/test/controllers/memberships_controller_test.rb
@@ -21,9 +21,8 @@ require 'test_helper'
class MembershipsControllerTest < ActionController::TestCase
test "prettyfied memberships" do
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- @request.set_REQUEST_URI("/sys/memberships")
- @request.env["ACCEPT"] = "application/json"
+ request.headers["X-EcsAuthId"] = identities(:ulm_id1).name
+ request.headers["Accept"] = "application/json"
get :index
assert_response 200
f = StringIO.open @response.body
diff --git a/test/controllers/messages_controller_test.rb b/test/controllers/messages_controller_test.rb
index 7d683c3..0005352 100644
--- a/test/controllers/messages_controller_test.rb
+++ b/test/controllers/messages_controller_test.rb
@@ -19,18 +19,38 @@
require 'test_helper'
class MessagesControllerTest < ActionController::TestCase
+private
+ # param1: http method
+ # param2: controller method, e.g. :index
+ # param3: http headers, e.g. { "X-EcsAuthId" => "ganz geheim", ... }
+ # param4: URI path, e.g. "/numlab/solutions/3"
+ # param5: controller params, e.g. { :id => 3, ... }
+ def myrequest(http_method, controller_method, uri_path, http_headers=nil, controller_params={})
+ request.path = uri_path
+ /[^\/]*$/ =~ uri_path
+ controller_params.merge!(:id => $~.to_s) unless $~.to_s.blank?
+ http_headers.each do |key,value|
+ request.headers[key] = value
+ end if http_headers
+ s = "#{http_method} :#{controller_method}, #{controller_params}"
+ eval s
+ end
+
+public
test "index" do
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- @request.set_REQUEST_URI("/numlab/exercises")
- get :index
+ myrequest("get", :index,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert_equal [1,2], assigns(:list).map {|e| e.id}
end
test "show first exercise as a receiver" do
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- @request.set_REQUEST_URI("/numlab/exercises")
- get :show, { :id => messages(:numlab_ex1).id }
+ myrequest("get", :show,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ex1).id}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert_equal "Hallo Ihr da im Radio.", @response.body.strip
assert_equal "X-EcsSender: "+memberships(:stgt_wuv).id.to_s, "X-EcsSender: "+@response.header['X-EcsSender']
@@ -38,111 +58,127 @@ class MessagesControllerTest < ActionController::TestCase
end
test "show solution" do
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- @request.set_REQUEST_URI("/numlab/solutions/3")
- get :show, { :id => messages(:numlab_sol).id }
- logger.debug "request.path = #{@request.path}"
- logger.debug "app_namespace = #{assigns(:app_namespace)}"
- logger.debug "ressource_name = #{assigns(:ressource_name)}"
+ myrequest("get", :show,
+ "/#{ressources(:numlab_solutions).namespace}/#{ressources(:numlab_solutions).ressource}/#{messages(:numlab_sol).id}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
end
# not a receiver or sender of :numlab_ex1
test "show forbidden exercise" do
- @request.env["X-EcsAuthId"] = identities(:numlab_comp_id1).name
- @request.set_REQUEST_URI("/numlab/exercises/#{messages(:numlab_ulm_ex1).id.to_s}")
- get :show, { :id => messages(:numlab_ulm_ex1).id }
- logger.debug "request.path = #{@request.path}"
+ myrequest("get", :show,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ulm_ex1).id}",
+ "X-EcsAuthId" => identities(:numlab_comp_id1).name
+ )
assert_response 403
end
test "show exercise as original sender but not as a receiver" do
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- @request.set_REQUEST_URI("/numlab/exercises")
- get :show, { :id => messages(:numlab_ulm_ex1).id }
- logger.debug "request.path = #{@request.path}"
+ myrequest("get", :show,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ulm_ex1).id}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert !@response.header.has_key?('X-EcsSender')
assert !@response.header.has_key?('X-EcsReceiverCommunities')
end
test "create_X-EcsReceiverMemberships" do
- @request.env["RAW_POST_DATA"] = "hallole"
- @request.env["CONTENT_TYPE"] = "text/html"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:ulm_wuv).id.to_s
- @request.set_REQUEST_URI("/numlab/exercises")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:ulm_wuv).id.to_s,
+ "CONTENT_TYPE" => "text/html",
+ "RAW_POST_DATA" => "hallole"
+ }
+ )
assert_response 201
assert_equal assigns(:record).sender, assigns(:participant).id
assert_equal mm_count+1, MembershipMessage.all.count
- assert_match /^.*\/numlab\/exercises\/[0-9]+$/, @response.header['LOCATION']
+ assert_match /^.*\/numlab\/exercises\/[0-9]+$/, @response.header['Location']
end
test "create_X-EcsReceiverCommunities_single" do
- @request.env["RAW_POST_DATA"] = "hallole"
- @request.env["CONTENT_TYPE"] = "text/html"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverCommunities"] = communities(:suv).name
- @request.set_REQUEST_URI("/numlab/exercises")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverCommunities" => communities(:suv).name,
+ "CONTENT_TYPE" => "text/html",
+ "RAW_POST_DATA" => "hallole"
+ }
+ )
assert_response 201
assert_equal assigns(:record).sender, assigns(:participant).id
assert_equal mm_count+1, MembershipMessage.all.count
end
test "create_X-EcsReceiverCommunities_multi" do
- @request.env["RAW_POST_DATA"] = "hallole"
- @request.env["CONTENT_TYPE"] = "text/html"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverCommunities"] = communities(:suv).name + "," + communities(:public).name
- @request.set_REQUEST_URI("/numlab/exercises")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverCommunities" => communities(:suv).name + "," + communities(:public).name,
+ "CONTENT_TYPE" => "text/html",
+ "RAW_POST_DATA" => "hallole"
+ }
+ )
assert_response 201
assert_equal assigns(:record).sender, assigns(:participant).id
assert_equal mm_count+3, MembershipMessage.all.count
end
test "create_X-EcsReceiverCommunities_multi_string_and_number" do
- @request.env["RAW_POST_DATA"] = "hallole"
- @request.env["CONTENT_TYPE"] = "text/html"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverCommunities"] = communities(:suv).name + "," + communities(:public).id.to_s
- @request.set_REQUEST_URI("/numlab/exercises")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverCommunities" => communities(:suv).name + "," + communities(:public).name,
+ "CONTENT_TYPE" => "text/html",
+ "RAW_POST_DATA" => "hallole"
+ }
+ )
assert_response 201
assert_equal assigns(:record).sender, assigns(:participant).id
assert_equal mm_count+3, MembershipMessage.all.count
end
test "update" do
- @request.env["RAW_POST_DATA"] = "neuer Text"
- @request.env["CONTENT_TYPE"] = "text/html"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:ulm_wuv).id.to_s
- @request.set_REQUEST_URI("/numlab/exercises")
- post :update, { :id => messages(:numlab_ex2).id }
+ myrequest("post", :update,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ex2).id}",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:ulm_wuv).id.to_s,
+ "CONTENT_TYPE" => "text/html",
+ "RAW_POST_DATA" => "neuer Text"
+ }
+ )
assert_response 200
end
test "update with event generation" do
- @request.env["RAW_POST_DATA"] = "neuer Text"
- @request.env["CONTENT_TYPE"] = "text/html"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:ulm_wuv).id.to_s
- @request.set_REQUEST_URI("/numlab/exercises")
ev_count = Event.all.count
m= Message.find(messages(:numlab_ex2).id)
m.ressource.events= true
m.save
- post :update, { :id => messages(:numlab_ex2).id }
+ myrequest("post", :update,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ex2).id}",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:ulm_wuv).id.to_s,
+ "CONTENT_TYPE" => "text/html",
+ "RAW_POST_DATA" => "neuer Text"
+ }
+ )
assert_response 200
assert_equal ev_count+1, Event.all.count
- ev= Event.find(:last, :order => "id")
+ ev= Event.order(:id).last
assert_equal ev.ev_type_id, 3
m= Message.find(messages(:numlab_ex2).id)
m.ressource.events= false
@@ -150,21 +186,24 @@ class MessagesControllerTest < ActionController::TestCase
end
test "update without ownership" do
- @request.env["RAW_POST_DATA"] = "neuer Text"
- @request.env["CONTENT_TYPE"] = "text/html"
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:ulm_wuv).id.to_s
- @request.set_REQUEST_URI("/numlab/exercises")
- post :update, { :id => messages(:numlab_ex2).id }
+ myrequest("post", :update,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ex2).id}",
+ {
+ "X-EcsAuthId" => identities(:ulm_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:ulm_wuv).id.to_s,
+ "CONTENT_TYPE" => "text/html",
+ "RAW_POST_DATA" => "neuer Text"
+ }
+ )
assert_response 403
end
# not a receiver or sender of :numlab_sol
test "delete_forbidden_solution" do
- @request.env["X-EcsAuthId"] = identities(:numlab_comp_id1).name
- @request.set_REQUEST_URI("/numlab/solutions/#{messages(:numlab_sol).id.to_s}")
- post :destroy, { :id => messages(:numlab_sol).id }
- logger.debug "request.path = #{@request.path}"
+ myrequest("post", :destroy,
+ "/#{ressources(:numlab_solutions).namespace}/#{ressources(:numlab_solutions).ressource}/#{messages(:numlab_sol).id}",
+ "X-EcsAuthId" => identities(:numlab_comp_id1).name
+ )
assert_response 404
end
@@ -173,74 +212,93 @@ class MessagesControllerTest < ActionController::TestCase
# next delete operation removes the message from ECS and also destroys all other
# receiver references.
test "delete_postrouted_message_as_owner_and_receiver_with_references_in_place" do
- @request.set_REQUEST_URI("/numlab/exercises/99999")
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- refscount= MembershipMessage.find_all_by_message_id(messages(:numlab_ex1)).count
+ refscount= MembershipMessage.where(:message_id => messages(:numlab_ex1)).count
assert refscount > 1
- post :destroy, { :id => messages(:numlab_ex1).id }
- logger.debug "@request.path = "+@request.path
+ myrequest("post", :destroy,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ex1).id}",
+ "X-EcsAuthId" => identities(:stgt_id1).name
+ )
assert_response 200
- get :show, { :id => messages(:numlab_ex1).id }
+ myrequest("get", :show,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ex1).id}",
+ "X-EcsAuthId" => identities(:stgt_id1).name
+ )
assert_response 200
- assert MembershipMessage.find_all_by_message_id(messages(:numlab_ex1)).count == refscount - 1
+ assert MembershipMessage.where(:message_id => messages(:numlab_ex1)).count == refscount - 1
# message is only tagged as removed (events on). physically it's still there.
assert_nothing_raised(ActiveRecord::RecordNotFound) { Message.find(messages(:numlab_ex1)) }
# This destroy is processed as role "sender", because the receiver quueue of the sender
# participant is now empty. Therefore all receiver references were deleted.
- post :destroy, { :id => messages(:numlab_ex1).id }
+ myrequest("post", :destroy,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ex1).id}",
+ "X-EcsAuthId" => identities(:stgt_id1).name
+ )
assert_response 200
- get :show, { :id => messages(:numlab_ex1).id }
+ myrequest("get", :show,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ex1).id}",
+ "X-EcsAuthId" => identities(:stgt_id1).name
+ )
assert_response 404
- assert_equal 0, MembershipMessage.find_all_by_message_id(messages(:numlab_ex1)).count
+ assert_equal 0, MembershipMessage.where(:message_id => messages(:numlab_ex1)).count
# message is only tagged as removed (events on). physically it's still there.
assert_nothing_raised(ActiveRecord::RecordNotFound) { Message.find(messages(:numlab_ex1)) }
end
test "delete_postrouted_message_as_owner_with_references_in_place" do
- @request.set_REQUEST_URI("/numlab/exercises/99999")
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- assert MembershipMessage.find_all_by_message_id(messages(:numlab_ulm_ex1)).count > 0
- post :destroy, { :id => messages(:numlab_ulm_ex1).id }
- logger.debug "@request.path = "+@request.path
+ assert MembershipMessage.where(:message_id => messages(:numlab_ulm_ex1)).count > 0
+ myrequest("post", :destroy,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ulm_ex1).id}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
- get :show, { :id => messages(:numlab_ulm_ex1).id }
+ myrequest("get", :show,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ulm_ex1).id}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 404
- assert_equal 0, MembershipMessage.find_all_by_message_id(messages(:numlab_ulm_ex1)).count
+ assert_equal 0, MembershipMessage.where(:message_id => messages(:numlab_ulm_ex1)).count
# message is only tagged as removed (events on). physically it's still there.
assert_nothing_raised(ActiveRecord::RecordNotFound) { Message.find(messages(:numlab_ulm_ex1)) }
end
test "delete_postrouted_message_as_none_owner_with_references_in_place" do
- @request.set_REQUEST_URI("/numlab/exercises/99999")
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
+ #@request.set_REQUEST_URI("/numlab/exercises/99999")
+ #@request.headers["X-EcsAuthId"] = identities(:stgt_id1).name
mm_count = MembershipMessage.all.count
# destroy message through receiver and none owner
- post :destroy, { :id => messages(:numlab_ulm_ex1).id }
- logger.debug "@request.path = "+@request.path
+ #post :destroy, { :id => messages(:numlab_ulm_ex1).id }
+ myrequest("post", :destroy,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}/#{messages(:numlab_ulm_ex1).id}",
+ "X-EcsAuthId" => identities(:stgt_id1).name
+ )
assert_response 200
assert_nothing_raised(ActiveRecord::RecordNotFound) { Message.find(@request.parameters[:id]) }
- assert_equal 0, MembershipMessage.find_all_by_message_id(@request.parameters[:id]).count
+ assert_equal 0, MembershipMessage.where(:message_id => @request.parameters[:id]).count
assert_equal Membership.find_by_participant_id_and_community_id(participants(:ilias_ulm),communities(:wuv)).id.to_s, @response["X-EcsSender"]
assert_equal communities(:wuv).id.to_s, @response["X-EcsReceiverCommunities"]
end
test "delete_none_postrouted_message_as_none_owner_with_last_reference_in_place" do
- @request.env["RAW_POST_DATA"] = "Diese Nachricht ist volatil.\r\n"
- @request.env["CONTENT_TYPE"] = "text/plain"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:numlab_comp).id.to_s
- @request.set_REQUEST_URI("/numlab/solutions")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/#{ressources(:numlab_solutions).namespace}/#{ressources(:numlab_solutions).ressource}",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:numlab_comp).id.to_s,
+ "CONTENT_TYPE" => "text/plain",
+ "RAW_POST_DATA" => "Diese Nachricht ist volatil.\r\n"
+ }
+ )
assert_response 201
assert_equal assigns(:record).sender, assigns(:participant).id
assert_equal mm_count+1, MembershipMessage.all.count
# destroy message through receiver
- @request.set_REQUEST_URI("/numlab/solutions")
- @request.env["X-EcsAuthId"] = identities(:numlab_comp_id1).name
- /[0-9]+$/ =~ @response.header['LOCATION']
+ /[0-9]+$/ =~ response.header['Location']
memberships = Membership.receiver(identities(:numlab_comp_id1).participant, $~.to_s.to_i)
- post :destroy, { :id => $~.to_s.to_i }
+ myrequest("post", :destroy,
+ "/#{ressources(:numlab_solutions).namespace}/#{ressources(:numlab_solutions).ressource}/#{$~.to_s.to_i}",
+ "X-EcsAuthId" => identities(:numlab_comp_id1).name
+ )
assert_response 200
assert_equal $~.to_s, @request.parameters[:id]
assert_nothing_raised(ActiveRecord::RecordNotFound) { Message.find(@request.parameters[:id]) }
@@ -250,37 +308,54 @@ class MessagesControllerTest < ActionController::TestCase
end
test "delete_none_postrouted_message_as_none_owner_with_references_in_place" do
- @request.env["RAW_POST_DATA"] = "Diese Nachricht ist volatil.\r\n"
- @request.env["CONTENT_TYPE"] = "text/plain"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:numlab_comp).id.to_s+","+memberships(:numlab_teacher).id.to_s
- @request.set_REQUEST_URI("/numlab/solutions")
+ #@request.headers["RAW_POST_DATA"] = "Diese Nachricht ist volatil.\r\n"
+ #@request.headers["CONTENT_TYPE"] = "text/plain"
+ #@request.headers["X-EcsAuthId"] = identities(:stgt_id1).name
+ #@request.headers["X-EcsReceiverMemberships"] = memberships(:numlab_comp).id.to_s+","+memberships(:numlab_teacher).id.to_s
+ #@request.set_REQUEST_URI("/numlab/solutions")
mm_count = MembershipMessage.all.count
- post :create
+ #post :create
+ myrequest("post", :create,
+ "/#{ressources(:numlab_solutions).namespace}/#{ressources(:numlab_solutions).ressource}",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:numlab_comp).id.to_s+","+memberships(:numlab_teacher).id.to_s,
+ "CONTENT_TYPE" => "text/plain",
+ "RAW_POST_DATA" => "Diese Nachricht ist volatil.\r\n"
+ }
+ )
assert_response 201
assert_equal assigns(:record).sender, assigns(:participant).id
assert_equal mm_count+2, MembershipMessage.all.count
- /[0-9]+$/ =~ @response.header['LOCATION']
- assert_equal 2, MembershipMessage.find_all_by_message_id($~.to_s.to_i).count
+ /[0-9]+$/ =~ response.header['Location']
+ assert_equal 2, MembershipMessage.where(:message_id => $~.to_s.to_i).count
# destroy message through receiver
- @request.set_REQUEST_URI("/numlab/solutions")
- @request.env["X-EcsAuthId"] = identities(:numlab_comp_id1).name
- post :destroy, { :id => $~.to_s.to_i }
+ #@request.set_REQUEST_URI("/numlab/solutions")
+ #@request.headers["X-EcsAuthId"] = identities(:numlab_comp_id1).name
+ #post :destroy, { :id => $~.to_s.to_i }
+ myrequest("post", :destroy,
+ "/#{ressources(:numlab_solutions).namespace}/#{ressources(:numlab_solutions).ressource}/#{$~.to_s.to_i}",
+ "X-EcsAuthId" => identities(:numlab_comp_id1).name
+ )
assert_response 200
assert_equal $~.to_s, @request.parameters[:id]
assert_nothing_raised(ActiveRecord::RecordNotFound) { Message.find(@request.parameters[:id]) }
- assert_equal 1, MembershipMessage.find_all_by_message_id($~.to_s.to_i).count
+ assert_equal 1, MembershipMessage.where(:message_id => $~.to_s.to_i).count
end
# Queue tests
#
test "fifo get idempotent" do
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- @request.set_REQUEST_URI("/numlab/exercises")
- get :fifo
+ myrequest("get", :fifo,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert_equal "Hallo Ihr da im Radio.", @response.body.strip
- get :fifo
+ myrequest("get", :fifo,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert_equal "Hallo Ihr da im Radio.", @response.body.strip
assert_equal Membership.find_by_participant_id_and_community_id(participants(:ilias_stgt),communities(:wuv)).id.to_s, @response["X-EcsSender"]
@@ -288,37 +363,49 @@ class MessagesControllerTest < ActionController::TestCase
end
test "fifo get not idempotent" do
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- @request.set_REQUEST_URI("/numlab/exercises")
- post :fifo
+ myrequest("post", :fifo,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert_equal "Hallo Ihr da im Radio.", @response.body.strip
assert_equal Membership.find_by_participant_id_and_community_id(participants(:ilias_stgt),communities(:wuv)).id.to_s, @response["X-EcsSender"]
assert_equal communities(:wuv).id.to_s, @response["X-EcsReceiverCommunities"]
- get :fifo
+ myrequest("post", :fifo,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert_not_equal "Hallo Ihr da im Radio.", @response.body.strip
assert_equal "Achtung ein Kartoon.", @response.body.strip
end
test "lifo get idempotent" do
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- @request.set_REQUEST_URI("/numlab/exercises")
- get :lifo
+ myrequest("get", :lifo,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert_equal "Achtung ein Kartoon.", @response.body.strip
- get :lifo
+ myrequest("get", :lifo,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert_equal "Achtung ein Kartoon.", @response.body.strip
end
test "lifo get not idempotent" do
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- @request.set_REQUEST_URI("/numlab/exercises")
- post :lifo
+ myrequest("post", :lifo,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert_equal "Achtung ein Kartoon.", @response.body.strip
- get :lifo
+ myrequest("post", :lifo,
+ "/#{ressources(:numlab_ex).namespace}/#{ressources(:numlab_ex).ressource}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert_not_equal "Achtung ein Kartoon.", @response.body.strip
assert_equal "Hallo Ihr da im Radio.", @response.body.strip
@@ -328,127 +415,139 @@ class MessagesControllerTest < ActionController::TestCase
#
test "create_auths_url" do
- @request.env["RAW_POST_DATA"] = <<-'HERE'
- {
- "url":"https://ilias.uni-stuttgart.de/goto.php?target=crs_95034&client_id=USTGT"
- }
- HERE
- @request.env["CONTENT_TYPE"] = "application/json"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:ulm_wuv).id.to_s
- @request.set_REQUEST_URI("/sys/auths")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/sys/auths",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:ulm_wuv).id.to_s,
+ "CONTENT_TYPE" => "application/json",
+ "RAW_POST_DATA" => '{"url":"https://ilias.uni-stuttgart.de/goto.php?target=crs_95034&client_id=USTGT"}'
+ }
+ )
assert_response 201
end
test "create_auths_realm" do
- @request.env["RAW_POST_DATA"] = <<-'HERE'
- {
- "realm":"https://ilias.uni-stuttgart.de/goto.php?target=crs_95034&client_id=USTGT"
- }
- HERE
- @request.env["CONTENT_TYPE"] = "application/json"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:ulm_wuv).id.to_s
- @request.set_REQUEST_URI("/sys/auths")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/sys/auths",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:ulm_wuv).id.to_s,
+ "CONTENT_TYPE" => "application/json",
+ "RAW_POST_DATA" => '{"realm":"https://ilias.uni-stuttgart.de/goto.php?target=crs_95034&client_id=USTGT"}'
+ }
+ )
assert_response 201
end
test "create_auths_invalid_json_mimetype" do
- @request.env["RAW_POST_DATA"] = <<-'HERE'
- {
- "realm":"https://ilias.uni-stuttgart.de/goto.php?target=crs_95034&client_id=USTGT"
- }
- HERE
- @request.env["CONTENT_TYPE"] = "text/html"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:ulm_wuv).id.to_s
- @request.set_REQUEST_URI("/sys/auths")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/sys/auths",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:ulm_wuv).id.to_s,
+ "CONTENT_TYPE" => "text/html",
+ "RAW_POST_DATA" => '{"realm":"https://ilias.uni-stuttgart.de/goto.php?target=crs_95034&client_id=USTGT"}'
+ }
+ )
assert_response 415
assert_equal "Body format has to be in JSON", assigns(:http_error).to_s
end
test "create_auths_invalid_json_body" do
- @request.env["RAW_POST_DATA"] = <<-'HERE'
- {
- "realm"::"https://ilias.uni-stuttgart.de/goto.php?target=crs_95034&client_id=USTGT"
- }
- HERE
- @request.env["CONTENT_TYPE"] = "application/json"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:ulm_wuv).id.to_s
- @request.set_REQUEST_URI("/sys/auths")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/sys/auths",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:ulm_wuv).id.to_s,
+ "CONTENT_TYPE" => "application/json",
+ "RAW_POST_DATA" => '{"realm"::"https://ilias.uni-stuttgart.de/goto.php?target=crs_95034&client_id=USTGT"}'
+ }
+ )
assert_response 400
assert_equal "Invalid JSON body", assigns(:http_error).to_s
end
test "create_auths_eov_younger_than_sov" do
- @request.env["RAW_POST_DATA"] = <<-'HERE'
+ raw_post_data = <<-'HERE'
{
"realm":"https://ilias.uni-stuttgart.de/goto.php?target=crs_95034&client_id=USTGT",
"sov": "2011-03-08T23:25:27+01:00",
"eov": "2011-03-08T23:25:17+01:00"
}
HERE
- @request.env["CONTENT_TYPE"] = "application/json"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:ulm_wuv).id.to_s
- @request.set_REQUEST_URI("/sys/auths")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/sys/auths",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:ulm_wuv).id.to_s,
+ "CONTENT_TYPE" => "application/json",
+ "RAW_POST_DATA" => raw_post_data
+ }
+ )
assert_response 400
assert_equal "invalid times either in sov or eov", assigns(:http_error).to_s
end
test "create_auths_sov_younger_than_current_time" do
- @request.env["RAW_POST_DATA"] = <<-'HERE'
+ raw_post_data = <<-'HERE'
{
"realm":"https://ilias.uni-stuttgart.de/goto.php?target=crs_95034&client_id=USTGT",
"sov": "2011-03-08T23:25:27+01:00"
}
HERE
- @request.env["CONTENT_TYPE"] = "application/json"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:ulm_wuv).id.to_s
- @request.set_REQUEST_URI("/sys/auths")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/sys/auths",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:ulm_wuv).id.to_s,
+ "CONTENT_TYPE" => "application/json",
+ "RAW_POST_DATA" => raw_post_data
+ }
+ )
assert_response 400
assert_equal "sov time is younger then current time", assigns(:http_error).to_s
end
test "create_auths_eov_too_young" do
- @request.env["RAW_POST_DATA"] = <<-"HERE"
+ raw_post_data = <<-"HERE"
{
"realm":"https://ilias.uni-stuttgart.de/goto.php?target=crs_95034&client_id=USTGT",
"eov": "#{(Time.now + 1.second).xmlschema}"
}
HERE
- @request.env["CONTENT_TYPE"] = "application/json"
- @request.env["X-EcsAuthId"] = identities(:stgt_id1).name
- @request.env["X-EcsReceiverMemberships"] = memberships(:ulm_wuv).id.to_s
- @request.set_REQUEST_URI("/sys/auths")
mm_count = MembershipMessage.all.count
- post :create
+ myrequest("post", :create,
+ "/sys/auths",
+ {
+ "X-EcsAuthId" => identities(:stgt_id1).name,
+ "X-EcsReceiverMemberships" => memberships(:ulm_wuv).id.to_s,
+ "CONTENT_TYPE" => "application/json",
+ "RAW_POST_DATA" => raw_post_data
+ }
+ )
assert_response 400
assert_equal "eov time is too young", assigns(:http_error).to_s
end
test "delete_auths" do
- @request.env["X-EcsAuthId"] = identities(:ulm_id1).name
- @request.set_REQUEST_URI("/sys/auths/#{auths(:valid).one_touch_hash}")
+ #@request.headers["X-EcsAuthId"] = identities(:ulm_id1).name
+ #@request.set_REQUEST_URI("/sys/auths/#{auths(:valid).one_touch_hash}")
auths_count= Auth.all.length
messages_count= Message.all.length
auth_valid_id= auths(:valid).id
message_auth_valid_id= messages(:auth_valid).id
- post :destroy, { :id => auths(:valid).one_touch_hash }
+ #post :destroy, { :id => auths(:valid).one_touch_hash }
+ myrequest("post", :destroy,
+ "/sys/auths/#{auths(:valid).one_touch_hash}",
+ "X-EcsAuthId" => identities(:ulm_id1).name
+ )
assert_response 200
assert_equal messages_count-1, Message.all.length
assert_equal auths_count-1, Auth.all.length
@@ -460,7 +559,7 @@ class MessagesControllerTest < ActionController::TestCase
#
test "create anonymous client" do
- @request.env["CONTENT_TYPE"] = "application/json"
+ @request.headers["CONTENT_TYPE"] = "application/json"
@request.set_REQUEST_URI("/numlab/exercises")
mm_count = MembershipMessage.all.count
get :index
diff --git a/test/integration/community_messages_test.rb b/test/integration/community_messages_test.rb
index a40d799..ec9a502 100644
--- a/test/integration/community_messages_test.rb
+++ b/test/integration/community_messages_test.rb
@@ -18,7 +18,7 @@
require 'test_helper'
-class CommunityMessagesTest < ActionController::IntegrationTest
+class CommunityMessagesTest < ActionDispatch::IntegrationTest
fixtures :all
BODY_DATA = "hallole"
diff --git a/test/integration/ressource_test.rb b/test/integration/ressource_test.rb
index a24dae5..cd94cc4 100644
--- a/test/integration/ressource_test.rb
+++ b/test/integration/ressource_test.rb
@@ -18,7 +18,7 @@
require 'test_helper'
-class RessourceTest < ActionController::IntegrationTest
+class RessourceTest < ActionDispatch::IntegrationTest
fixtures :all
def setup
@@ -82,8 +82,8 @@ class RessourceTest < ActionController::IntegrationTest
post '/numlab/exercises', BODY_DATA, @headers
assert_response 201
location = URI.split(headers["Location"])[5][1..-1].sub(/[^\/]*\/(.*)/, '\1')
- logger.info('headers["Location"]: '+headers["Location"])
- logger.info('location: '+location)
+ Rails.logger.info('headers["Location"]: '+headers["Location"])
+ Rails.logger.info('location: '+location)
sender_headers
get '/numlab/exercises', nil, @headers
assert_response 200
@@ -97,8 +97,8 @@ class RessourceTest < ActionController::IntegrationTest
post '/numlab/exercises', BODY_DATA, @headers
assert_response 201
location = URI.split(headers["Location"])[5][1..-1].sub(/[^\/]*\/(.*)/, '\1')
- logger.info('headers["Location"]: '+headers["Location"])
- logger.info('location: '+location)
+ Rails.logger.info('headers["Location"]: '+headers["Location"])
+ Rails.logger.info('location: '+location)
sender_headers
assert !@participant.community_selfrouting
get '/numlab/exercises', nil, @headers
@@ -132,8 +132,8 @@ class RessourceTest < ActionController::IntegrationTest
post '/numlab/exercises', BODY_DATA, @headers
assert_response 201
location = URI.split(headers["Location"])[5][1..-1].sub(/[^\/]*\/(.*)/, '\1')
- logger.info('headers["Location"]: '+headers["Location"])
- logger.info('location: '+location)
+ Rails.logger.info('headers["Location"]: '+headers["Location"])
+ Rails.logger.info('location: '+location)
# 1.1
sender_headers
get '/numlab/exercises', nil, @headers
@@ -173,7 +173,7 @@ class RessourceTest < ActionController::IntegrationTest
# 1.5
sender_headers
post '/events/fifo', nil, @headers
- logger.info("response body:\n"+response.body)
+ Rails.logger.info("response body:\n"+response.body)
assert_response 200
assert_nil response.body.index(location)
sender_headers
diff --git a/test/test_helper.rb b/test/test_helper.rb
index 392100b..a1e11c6 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -1,26 +1,10 @@
-# Copyright (C) 2007, 2008, 2009, 2010 Heiko Bernloehr (FreeIT.de).
-#
-# This file is part of ECS.
-#
-# ECS is free software: you can redistribute it and/or modify it
-# under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of
-# the License, or (at your option) any later version.
-#
-# ECS is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public
-# License along with ECS. If not, see <http://www.gnu.org/licenses/>.
-
-
-ENV["RAILS_ENV"] = "test"
-require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
-require 'test_help'
+ENV['RAILS_ENV'] ||= 'test'
+require File.expand_path('../../config/environment', __FILE__)
+require 'rails/test_help'
class ActiveSupport::TestCase
+ # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
+ fixtures :all
# Transactional fixtures accelerate your tests by wrapping each test method
# in a transaction that's rolled back on completion. This ensures that the
# test database remains unchanged so your fixtures don't have to be reloaded
@@ -34,10 +18,10 @@ class ActiveSupport::TestCase
# don't care one way or the other, switching from MyISAM to InnoDB tables
# is recommended.
#
- # The only drawback to using transactional fixtures is when you actually
+ # The only drawback to using transactional fixtures is when you actually
# need to test transactions. Since your test is bracketed by a transaction,
# any transactions started in your code will be automatically rolled back.
- self.use_transactional_fixtures = true
+ self.use_transactional_fixtures = false
# Instantiated fixtures are slow, but give you @david where otherwise you
# would need people(:david). If you don't want to migrate your existing
@@ -46,15 +30,5 @@ class ActiveSupport::TestCase
# then set this back to true.
self.use_instantiated_fixtures = false
- # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
- #
- # Note: You'll currently still have to declare fixtures explicitly in integration tests
- # -- they do not yet inherit this setting
- fixtures :all
-
# Add more helper methods to be used by all tests here...
- #
- def logger
- RAILS_DEFAULT_LOGGER
- end
end