Mercurial > gemma
changeset 104:bc1c7fa3a939
Add tests for authorisation of templates.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Fri, 15 Jun 2018 18:15:04 +0200 |
parents | b29538ac409d |
children | b5e403843639 |
files | tap_tests.sql |
diffstat | 1 files changed, 17 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/tap_tests.sql Fri Jun 15 18:12:40 2018 +0200 +++ b/tap_tests.sql Fri Jun 15 18:15:04 2018 +0200 @@ -5,7 +5,7 @@ CREATE EXTENSION pgtap; -SELECT plan(5); -- Give number of tests that have to be run +SELECT plan(7); -- Give number of tests that have to be run SET search_path TO public, wamos, wamos_waterway, wamos_fairway; @@ -53,17 +53,24 @@ 'AT', 'AT', 'AT', 1, 'depth', 'testorganization', true); +INSERT INTO templates (dummy_attrib) + VALUES ('usertemplate'), ('othertemplate'); +INSERT INTO user_templates + SELECT 'waterway_user', id FROM templates + WHERE dummy_attrib = 'usertemplate'; + -- -- Run tests as unprivileged user +-- SET SESSION AUTHORIZATION waterway_user; SELECT throws_ok('CREATE TABLE test()', 42501, NULL, 'No objects can be created'); +SELECT isnt_empty('SELECT * FROM bottlenecks', + 'Staged data should be visible'); SELECT is_empty('SELECT * FROM bottlenecks WHERE NOT staging_done', 'Only staged data should be visible'); -SELECT isnt_empty('SELECT * FROM bottlenecks', - 'Only staged data should be visible'); SELECT set_eq('SELECT count(*) FROM wamos.user_profiles', ARRAY[1], 'User should only see his own profile'); @@ -71,6 +78,13 @@ 'SELECT CAST(current_user AS varchar)', 'User should only see his own profile'); +SELECT isnt_empty('SELECT * FROM templates', + 'User should see templates associated to him'); +SELECT is_empty('SELECT * FROM templates t + JOIN user_templates ut ON t.id = template_id + WHERE username <> current_user', + 'User should only see templates associated to him'); + -- -- finish tests --