From 7883965d1ddca56520d0219c447821d056ed22d1 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Wed, 21 Mar 2012 11:48:04 +0100 Subject: authorization added, tests not yet working --- test/authorization.rb | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 test/authorization.rb (limited to 'test') diff --git a/test/authorization.rb b/test/authorization.rb new file mode 100644 index 0000000..ffb2d65 --- /dev/null +++ b/test/authorization.rb @@ -0,0 +1,112 @@ +require 'test/unit' +$LOAD_PATH << File.join(File.dirname(__FILE__),'..','lib') +require File.expand_path(File.join(File.dirname(__FILE__),'..','lib','opentox-client.rb')) +TEST_URI = "http://only_a_test/test/" + rand(1000000).to_s +#AA = "https://opensso.in-silico.ch" +AA_USER = "guest" +AA_PASS = "guest" +#unless defined? AA #overwrite turned off A&A server for testing + @@subjectid = OpenTox::Authorization.authenticate(AA_USER,AA_PASS) +#end + +class TestOpenToxAuthorizationBasic < Test::Unit::TestCase + + def test_01_server + assert_equal(AA, OpenTox::Authorization.server) + end + + def test_02_get_token + assert_not_nil @@subjectid + end + + def test_03_is_valid_token + tok = login + assert_not_nil tok + assert OpenTox::Authorization.is_token_valid(tok) + logout(tok) + end + + def test_04_logout + tok = login + assert logout(tok) + end + + def test_05_list_policies + assert_kind_of Array, OpenTox::Authorization.list_policies(@@subjectid) + end + +end + +class TestOpenToxAuthorizationLDAP < Test::Unit::TestCase + + def test_01_list_groups + assert_kind_of Array, OpenTox::Authorization.list_groups(@@subjectid) + end + + def test_02_list_user_groups + assert_kind_of Array, OpenTox::Authorization.list_user_groups(AA_USER, @@subjectid) + end + + def test_03_get_user + assert_equal AA_USER, OpenTox::Authorization.get_user(@@subjectid) + end + +end + +class TestOpenToxAuthorizationLDAP < Test::Unit::TestCase + + def test_01_create_check_delete_default_policies + res = OpenTox::Authorization.send_policy(TEST_URI, @@subjectid) + assert res + assert OpenTox::Authorization.uri_has_policy(TEST_URI, @@subjectid) + policies = OpenTox::Authorization.list_uri_policies(TEST_URI, @@subjectid) + assert_kind_of Array, policies + policies.each do |policy| + assert OpenTox::Authorization.delete_policy(policy, @@subjectid) + end + assert_equal false, OpenTox::Authorization.uri_has_policy(TEST_URI, @@subjectid) + end + + def test_02_check_policy_rules + tok_anonymous = OpenTox::Authorization.authenticate("anonymous","anonymous") + assert_not_nil tok_anonymous + res = OpenTox::Authorization.send_policy(TEST_URI, @@subjectid) + assert res + assert OpenTox::Authorization.uri_has_policy(TEST_URI, @@subjectid) + owner_rights = {"GET" => true, "POST" => true, "PUT" => true, "DELETE" => true} + groupmember_rights = {"GET" => true, "POST" => nil, "PUT" => nil, "DELETE" => nil} + owner_rights.each do |request, right| + assert_equal right, OpenTox::Authorization.authorize(TEST_URI, request, @@subjectid), "#{AA_USER} requests #{request} to #{TEST_URI}" + end + groupmember_rights.each do |request, r| + assert_equal r, OpenTox::Authorization.authorize(TEST_URI, request, tok_anonymous), "anonymous requests #{request} to #{TEST_URI}" + end + + policies = OpenTox::Authorization.list_uri_policies(TEST_URI, @@subjectid) + assert_kind_of Array, policies + policies.each do |policy| + assert OpenTox::Authorization.delete_policy(policy, @@subjectid) + end + logout(tok_anonymous) + end + + def test_03_check_different_uris + res = OpenTox::Authorization.send_policy(TEST_URI, @@subjectid) + assert OpenTox::Authorization.uri_has_policy(TEST_URI, @@subjectid) + assert OpenTox::Authorization.authorize(TEST_URI, "GET", @@subjectid), "GET request" + policies = OpenTox::Authorization.list_uri_policies(TEST_URI, @@subjectid) + policies.each do |policy| + assert OpenTox::Authorization.delete_policy(policy, @@subjectid) + end + + end +end + + +def logout (token) + OpenTox::Authorization.logout(token) +end + +def login + OpenTox::Authorization.authenticate(AA_USER,AA_PASS) +end -- cgit v1.2.3