summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2013-02-25 13:19:23 +0100
committerAzul <azul@leap.se>2013-02-25 13:31:58 +0100
commit9c4eb32c22e6bf49d84b6ac1fa4fc5cde5374a7a (patch)
treeb302a527ce939dd498b68f4f87dbcd95bfb8cf26
parent494ebdab860a4db792e1c61836f1efcb7593dfe7 (diff)
tests refactored with with_config helper
also added test for getting paid certs if free certs are disabled
-rw-r--r--certs/test/functional/certs_controller_test.rb17
-rw-r--r--core/test/support/with_config_helper.rb16
2 files changed, 28 insertions, 5 deletions
diff --git a/certs/test/functional/certs_controller_test.rb b/certs/test/functional/certs_controller_test.rb
index 70ca56d..7826dd6 100644
--- a/certs/test/functional/certs_controller_test.rb
+++ b/certs/test/functional/certs_controller_test.rb
@@ -20,13 +20,20 @@ class CertsControllerTest < ActionController::TestCase
end
test "login required if free certs disabled" do
- begin
- old_setting = APP_CONFIG[:free_certs_enabled]
- APP_CONFIG[:free_certs_enabled] = false
+ with_config free_certs_enabled: false do
get :show
assert_response :redirect
- ensure
- APP_CONFIG[:free_certs_enabled] = old_setting
+ end
+ end
+
+ test "get paid cert if free certs disabled" do
+ with_config free_certs_enabled: false do
+ login
+ cert = stub :to_s => "real cert"
+ ClientCertificate.expects(:new).with(free: false).returns(cert)
+ get :show
+ assert_response :success
+ assert_equal cert.to_s, @response.body
end
end
diff --git a/core/test/support/with_config_helper.rb b/core/test/support/with_config_helper.rb
new file mode 100644
index 0000000..65eb7bc
--- /dev/null
+++ b/core/test/support/with_config_helper.rb
@@ -0,0 +1,16 @@
+module WithConfigHelper
+ extend ActiveSupport::Concern
+
+ def with_config(options)
+ old_config = APP_CONFIG.dup
+ APP_CONFIG.merge! options
+ yield
+ ensure
+ APP_CONFIG.replace old_config
+ end
+
+end
+
+class ActiveSupport::TestCase
+ include WithConfigHelper
+end