]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/t/lp1750894-workststation-settings.pg
LP1915464 follow-up: use spaces, not tabs; remove extra comma
[working/Evergreen.git] / Open-ILS / src / sql / Pg / t / lp1750894-workststation-settings.pg
1 BEGIN;
2
3 SELECT plan(5);
4
5 INSERT INTO actor.workstation (name, owning_lib) values ('test', 1);
6
7 INSERT INTO actor.workstation_setting (workstation, name, value) 
8 VALUES (
9     (SELECT id FROM actor.workstation WHERE name = 'test'),
10     'eg.search.adv_pane', '"test-workstation"'
11 );
12
13
14 -- duplicate the setting type as an org setting to verify precedence
15 INSERT INTO config.org_unit_setting_type (name, grp, datatype, label)
16 VALUES (
17     'eg.search.adv_pane', 'gui', 'string',
18     oils_i18n_gettext(
19         'eg.search.adv_pane',
20         'Catalog Advanced Search Default Pane',
21         'cwst', 'label'
22     )
23 );
24
25 INSERT INTO actor.org_unit_setting (org_unit, name, value) 
26     VALUES (1, 'eg.search.adv_pane', '"test-org-unit"');
27
28 SELECT is(
29     (   SELECT value::TEXT
30         FROM actor.get_cascade_setting('eg.search.adv_pane',
31             1, 1, (SELECT id FROM actor.workstation WHERE name = 'test'))),
32     '"test-workstation"',
33     'Workstation setting takes precedence over org setting'
34 );
35
36 DELETE FROM actor.workstation_setting WHERE name = 'eg.search.adv_pane';
37
38 SELECT is(
39     (   SELECT value::TEXT
40         FROM actor.get_cascade_setting('eg.search.adv_pane',
41             1, 1, (SELECT id FROM actor.workstation WHERE name = 'test'))),
42     '"test-org-unit"',
43     'Org unit setting should now work'
44 );
45
46 PREPARE user_setting_insert AS
47     INSERT INTO config.usr_setting_type (name, grp, datatype, label)
48     VALUES (
49         'eg.search.adv_pane', 'gui', 'string',
50         oils_i18n_gettext(
51             'eg.search.adv_pane',
52             'Catalog Advanced Search Default Pane',
53             'cwst', 'label'
54         )
55     );
56
57 SELECT throws_like(
58     'user_setting_insert',
59     '%Cannot be used as both a user setting and a workstation setting.', 
60     'User settings cannot also be workstation settings'
61 );
62
63 DELETE FROM config.workstation_setting_type WHERE name = 'eg.search.adv_pane';
64
65 SELECT lives_ok(
66     'user_setting_insert',
67     'User settings can now be created'
68 );
69
70 INSERT INTO actor.usr_setting (usr, name, value) 
71     VALUES (1, 'eg.search.adv_pane', '"test-user"');
72
73 SELECT is(
74     (   SELECT value::TEXT
75         FROM actor.get_cascade_setting('eg.search.adv_pane',
76             1, 1, (SELECT id FROM actor.workstation WHERE name = 'test'))),
77     '"test-user"',
78     'User setting takes precedence over org setting'
79 );
80
81
82 -- Finish the tests and clean up.
83 SELECT * FROM finish();
84 ROLLBACK;