summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2012-03-21 11:48:04 +0100
committerChristoph Helma <helma@in-silico.ch>2012-03-21 11:48:04 +0100
commit7883965d1ddca56520d0219c447821d056ed22d1 (patch)
treedbf4a02103046dbe50f0d5a852ea4b7b8a6db535 /test
parentfc990e6dae8af7cfdf7d12b4e1d9ccd3b557418a (diff)
authorization added, tests not yet working
Diffstat (limited to 'test')
-rw-r--r--test/authorization.rb112
1 files changed, 112 insertions, 0 deletions
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