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
 --