From 9216ab8252246a263c5d17f6755a7d3887145f94 Mon Sep 17 00:00:00 2001 From: Azul Date: Fri, 18 Apr 2014 11:55:40 +0200 Subject: change service level configuration strategy The changes to the configuration required some non minor changes to the platform and also added some flexibility we don't require yet - and thus some new possibilities for errors. So instead we still use the allow_..._certs and ..._cert_prefix options. They basically provide the framework in which service levels can operate. The service level configuration will not include the cert prefix anymore. It only states if the service level is rate limited or not. This avoids conflicts between the two configuration options. I also removed the anonymous service level entirely. It was also turning a boolean decision (do we provide anonymous eip or not) into something way more complex. Instead I added the AnonymousServiceLevel class to handle the corner cases for people who are not logged in. Furthermore i renamed the UnauthenticatedUser to AnonymousUser so it matches the Anonymous Service Level nicely. It's also shorter and more intuitive. --- test/functional/v1/certs_controller_test.rb | 30 ++++++++++++++------------ test/functional/v1/services_controller_test.rb | 23 ++++++++++++++------ test/unit/anonymous_user_test.rb | 23 ++++++++++++++++++++ test/unit/unauthenticated_user_test.rb | 7 ------ 4 files changed, 55 insertions(+), 28 deletions(-) create mode 100644 test/unit/anonymous_user_test.rb delete mode 100644 test/unit/unauthenticated_user_test.rb (limited to 'test') diff --git a/test/functional/v1/certs_controller_test.rb b/test/functional/v1/certs_controller_test.rb index 3631947..fb8e9c4 100644 --- a/test/functional/v1/certs_controller_test.rb +++ b/test/functional/v1/certs_controller_test.rb @@ -2,19 +2,23 @@ require 'test_helper' class V1::CertsControllerTest < ActionController::TestCase - test "send limited cert without login" do - cert = expect_cert('LIMITED') - get :show - assert_response :success - assert_equal cert.to_s, @response.body + test "send unlimited cert without login" do + with_config allow_anonymous_certs: true do + cert = expect_cert('UNLIMITED') + get :show + assert_response :success + assert_equal cert.to_s, @response.body + end end test "send limited cert" do - login - cert = expect_cert('LIMITED') - get :show - assert_response :success - assert_equal cert.to_s, @response.body + with_config allow_limited_certs: true do + login + cert = expect_cert('LIMITED') + get :show + assert_response :success + assert_equal cert.to_s, @response.body + end end test "send unlimited cert" do @@ -26,10 +30,8 @@ class V1::CertsControllerTest < ActionController::TestCase end test "redirect if no eip service offered" do - with_config({service_levels: {0 => {services: []}}}) do - get :show - assert_response :redirect - end + get :show + assert_response :redirect end protected diff --git a/test/functional/v1/services_controller_test.rb b/test/functional/v1/services_controller_test.rb index bcb7abc..b81103f 100644 --- a/test/functional/v1/services_controller_test.rb +++ b/test/functional/v1/services_controller_test.rb @@ -2,23 +2,32 @@ require 'test_helper' class V1::ServicesControllerTest < ActionController::TestCase - test "anonymous user can request service info" do + test "anonymous user gets login required service info" do get :show, format: :json assert_json_response name: 'anonymous', - cert_prefix: 'LIMITED', - description: 'anonymous account, with rate limited VPN', - services: ["eip"] + eip_rate_limit: false, + description: 'please login to access our services', + cost: 0 + end + + test "anonymous user gets vpn service info" do + with_config allow_anonymous_certs: true do + get :show, format: :json + assert_json_response name: 'anonymous', + eip_rate_limit: false, + description: 'anonymous access to the VPN', + cost: 0 + end end test "user can see their service info" do login get :show, format: :json assert_json_response name: 'free', - cert_prefix: 'LIMITED', + eip_rate_limit: true, description: 'free account, with rate limited VPN', cost: 0, - quota: 100, - services: ["eip", "email"] + quota: 100 end end diff --git a/test/unit/anonymous_user_test.rb b/test/unit/anonymous_user_test.rb new file mode 100644 index 0000000..6e94d39 --- /dev/null +++ b/test/unit/anonymous_user_test.rb @@ -0,0 +1,23 @@ +require 'test_helper' + +class AnonymousUserTest < ActiveSupport::TestCase + + setup do + @anonymous = AnonymousUser.new + end + + test "has nil values" do + assert_nil @anonymous.id + assert_nil @anonymous.email_address + assert_nil @anonymous.login + end + + test "has no messages" do + assert_equal [], @anonymous.messages + end + + test "has anonymous service level" do + assert @anonymous.effective_service_level.is_a? AnonymousServiceLevel + end + +end diff --git a/test/unit/unauthenticated_user_test.rb b/test/unit/unauthenticated_user_test.rb deleted file mode 100644 index e5fafb8..0000000 --- a/test/unit/unauthenticated_user_test.rb +++ /dev/null @@ -1,7 +0,0 @@ -require 'test_helper' - -class UnauthenticatedUserTest < ActiveSupport::TestCase - # test "the truth" do - # assert true - # end -end -- cgit v1.2.3