summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2014-11-25 16:52:24 -0800
committerelijah <elijah@riseup.net>2014-11-25 16:52:24 -0800
commite7c1e86a4a63def83ff205319e0950e4d3421180 (patch)
tree46b44eb3af669251270a3e2d03038f176ce547f0 /tests
parentde51b83384d97a67cdbdf1992ba9ad771a292c5d (diff)
atomic tests for webapp api
Diffstat (limited to 'tests')
-rw-r--r--tests/white-box/webapp.rb82
1 files changed, 35 insertions, 47 deletions
diff --git a/tests/white-box/webapp.rb b/tests/white-box/webapp.rb
index 2aa87403..7fbab1af 100644
--- a/tests/white-box/webapp.rb
+++ b/tests/white-box/webapp.rb
@@ -41,62 +41,50 @@ class Webapp < LeapTest
pass
end
- def test_05_Can_create_user?
- @@user = nil
- user = SRP::User.new
+ def test_05_Can_create_and_authenticate_and_delete_user_via_API?
+ @user = SRP::User.new
+ @session_token = nil
+ @user_id = nil
+
+ # create user
url = api_url("/1/users.json")
- assert_post(url, user.to_params) do |body|
+ assert_post(url, @user.to_params) do |body|
assert response = JSON.parse(body), 'response should be JSON'
assert response['ok'], 'creating a user should be successful'
end
- @@user = user
- pass
- end
- def test_06_Can_authenticate?
- @@user_id = nil
- @@session_token = nil
- if @@user.nil?
- skip "Depends on user creation"
- else
- url = api_url("/1/sessions.json")
- session = SRP::Session.new(@@user)
- params = {'login' => @@user.username, 'A' => session.aa}
- assert_post(url, params) do |response, body|
- cookie = response['Set-Cookie'].split(';').first
+ # authenticate
+ url = api_url("/1/sessions.json")
+ session = SRP::Session.new(@user)
+ params = {'login' => @user.username, 'A' => session.aa}
+ assert_post(url, params) do |response, body|
+ cookie = response['Set-Cookie'].split(';').first
+ assert(response = JSON.parse(body), 'response should be JSON')
+ assert(bb = response["B"])
+ session.bb = bb
+ url = api_url("/1/sessions/login.json")
+ params = {'client_auth' => session.m, 'A' => session.aa}
+ options = {:headers => {'Cookie' => cookie}}
+ assert_put(url, params, options) do |body|
assert(response = JSON.parse(body), 'response should be JSON')
- assert(bb = response["B"])
- session.bb = bb
- url = api_url("/1/sessions/login.json")
- params = {'client_auth' => session.m, 'A' => session.aa}
- options = {:headers => {'Cookie' => cookie}}
- assert_put(url, params, options) do |body|
- assert(response = JSON.parse(body), 'response should be JSON')
- assert(response['M2'], 'response should include M2')
- assert(@@session_token = response['token'], 'response should include token')
- assert(@@user_id = response['id'], 'response should include user id')
- end
+ assert(response['M2'], 'response should include M2')
+ assert(@session_token = response['token'], 'response should include token')
+ assert(@user_id = response['id'], 'response should include user id')
end
- pass
end
- end
- def test_07_Can_delete_user?
- if @@user_id.nil? || @@session_token.nil?
- skip "Depends on authentication"
- else
- url = api_url("/1/users/#{@@user_id}.json")
- options = {:headers => {
- "Authorization" => "Token token=\"#{@@session_token}\""
- }}
- delete(url, {}, options) do |body, response, error|
- if response.code.to_i != 200
- skip "It appears the web api is too old to support deleting users"
- else
- assert(response = JSON.parse(body), 'response should be JSON')
- assert(response["success"], 'delete should be a success')
- pass
- end
+ # delete
+ url = api_url("/1/users/#{@user_id}.json")
+ options = {:headers => {
+ "Authorization" => "Token token=\"#{@session_token}\""
+ }}
+ delete(url, {}, options) do |body, response, error|
+ if response.code.to_i != 200
+ skip "It appears the web api is too old to support deleting users"
+ else
+ assert(response = JSON.parse(body), 'response should be JSON')
+ assert(response["success"], 'delete should be a success')
+ pass
end
end
end