~ubuntu-branches/ubuntu/utopic/gitolite3/utopic-proposed

« back to all changes in this revision

Viewing changes to t/perm-default-roles.t

  • Committer: Package Import Robot
  • Author(s): David Bremner
  • Date: 2013-05-18 17:59:21 UTC
  • Revision ID: package-import@ubuntu.com-20130518175921-ac4xe6vd0jtxvjot
Tags: upstream-3.5.1+4
ImportĀ upstreamĀ versionĀ 3.5.1+4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/perl
 
2
use strict;
 
3
use warnings;
 
4
 
 
5
# this is hardcoded; change it if needed
 
6
use lib "src/lib";
 
7
use Gitolite::Test;
 
8
 
 
9
# permissions using role names
 
10
# ----------------------------------------------------------------------
 
11
 
 
12
try "plan 27";
 
13
try "DEF POK = !/DENIED/; !/failed to push/";
 
14
 
 
15
my $rb = `gitolite query-rc -n GL_REPO_BASE`;
 
16
 
 
17
try "pwd";
 
18
my $od = text();
 
19
chomp($od);
 
20
 
 
21
my $t;
 
22
 
 
23
confreset; confadd '
 
24
    @g1 = u1
 
25
    @g2 = u2
 
26
    @g3 = u3
 
27
    @g4 = u4
 
28
        repo foo/CREATOR/..*
 
29
          C                 =   @g1 @g2
 
30
          RW+               =   CREATOR
 
31
          -     refs/tags/  =   WRITERS
 
32
          RW                =   WRITERS
 
33
          R                 =   READERS
 
34
 
 
35
        repo bar/CREATOR/..*
 
36
          C                 =   @g3 @g4
 
37
          RW+               =   CREATOR
 
38
          -     refs/tags/  =   WRITERS
 
39
          RW                =   WRITERS
 
40
          R                 =   READERS
 
41
';
 
42
 
 
43
try "ADMIN_PUSH set1; !/FATAL/" or die text();
 
44
 
 
45
# create repos - 1; no gl-perms files expected
 
46
try "
 
47
 
 
48
cd ..
 
49
 
 
50
# make foo/u1/u1r1
 
51
glt clone u1 file:///foo/u1/u1r1
 
52
        /Initialized empty Git repository in .*/foo/u1/u1r1.git//
 
53
 
 
54
# make bar/u3/u3r1
 
55
glt clone u3 file:///bar/u3/u3r1
 
56
        /Initialized empty Git repository in .*/bar/u3/u3r1.git//
 
57
 
 
58
cd u3r1
 
59
";
 
60
 
 
61
try "cd $rb; find . -name gl-perms; cd $od"; cmp text(), '';
 
62
 
 
63
# enable set-default-roles feature
 
64
try "
 
65
    cat $ENV{HOME}/.gitolite.rc
 
66
    perl s/# 'set-default-roles'/'set-default-roles'/
 
67
    put $ENV{HOME}/.gitolite.rc
 
68
";
 
69
 
 
70
# create repos - 2; empty gl-perms files expected
 
71
try "
 
72
 
 
73
cd ..
 
74
 
 
75
# make foo/u1/u1r2
 
76
glt clone u1 file:///foo/u1/u1r2
 
77
        /Initialized empty Git repository in .*/foo/u1/u1r2.git//
 
78
 
 
79
# make bar/u3/u3r2
 
80
glt clone u3 file:///bar/u3/u3r2
 
81
        /Initialized empty Git repository in .*/bar/u3/u3r2.git//
 
82
 
 
83
cd u3r2
 
84
";
 
85
 
 
86
try "cd $rb; find . -name gl-perms";
 
87
$t = md5sum(sort (lines()));
 
88
cmp $t, 'd41d8cd98f00b204e9800998ecf8427e  ./bar/u3/u3r2.git/gl-perms
 
89
d41d8cd98f00b204e9800998ecf8427e  ./foo/u1/u1r2.git/gl-perms
 
90
';
 
91
try "cd $od";
 
92
 
 
93
# enable per repo default roles
 
94
confadd '
 
95
        repo foo/CREATOR/..*
 
96
        option default.roles-1  =   READERS u3
 
97
        option default.roles-2  =   WRITERS u4
 
98
 
 
99
        repo bar/CREATOR/..*
 
100
        option default.roles-1  =   READERS u5
 
101
';
 
102
 
 
103
try "ADMIN_PUSH set1; !/FATAL/" or die text();
 
104
 
 
105
# create repos - 3; filled gl-perms expected
 
106
try "
 
107
 
 
108
cd ..
 
109
 
 
110
# make foo/u1/u1r3
 
111
glt clone u1 file:///foo/u1/u1r3
 
112
        /Initialized empty Git repository in .*/foo/u1/u1r3.git//
 
113
 
 
114
# make bar/u3/u3r3
 
115
glt clone u3 file:///bar/u3/u3r3
 
116
        /Initialized empty Git repository in .*/bar/u3/u3r3.git//
 
117
 
 
118
cd u3r3
 
119
";
 
120
 
 
121
try "cd $rb; find . -name gl-perms";
 
122
$t = md5sum(sort (lines()));
 
123
cmp $t, 'd41d8cd98f00b204e9800998ecf8427e  ./bar/u3/u3r2.git/gl-perms
 
124
b09856c1addc8e46f6ce0d21a666a633  ./bar/u3/u3r3.git/gl-perms
 
125
d41d8cd98f00b204e9800998ecf8427e  ./foo/u1/u1r2.git/gl-perms
 
126
1b5af29692fad391318573bbe633b476  ./foo/u1/u1r3.git/gl-perms
 
127
';
 
128
try "cd $od";
 
129
 
 
130
# add perms to an old repo
 
131
try "
 
132
echo WRITERS \@h1 | glt perms u1 foo/u1/u1r1
 
133
";
 
134
 
 
135
try "cd $rb; find . -name gl-perms";
 
136
$t = md5sum(sort (lines()));
 
137
cmp $t, 'd41d8cd98f00b204e9800998ecf8427e  ./bar/u3/u3r2.git/gl-perms
 
138
b09856c1addc8e46f6ce0d21a666a633  ./bar/u3/u3r3.git/gl-perms
 
139
f8f0fd8e139ddb64cd5572914b98750a  ./foo/u1/u1r1.git/gl-perms
 
140
d41d8cd98f00b204e9800998ecf8427e  ./foo/u1/u1r2.git/gl-perms
 
141
1b5af29692fad391318573bbe633b476  ./foo/u1/u1r3.git/gl-perms
 
142
';
 
143
try "cd $od";
 
144
 
 
145
# add perms to a new repo
 
146
try "
 
147
echo WRITERS \@h2 | glt perms u1 -c foo/u1/u1r4
 
148
";
 
149
 
 
150
try "cd $rb; find . -name gl-perms";
 
151
$t = md5sum(sort (lines()));
 
152
cmp $t, 'd41d8cd98f00b204e9800998ecf8427e  ./bar/u3/u3r2.git/gl-perms
 
153
b09856c1addc8e46f6ce0d21a666a633  ./bar/u3/u3r3.git/gl-perms
 
154
f8f0fd8e139ddb64cd5572914b98750a  ./foo/u1/u1r1.git/gl-perms
 
155
d41d8cd98f00b204e9800998ecf8427e  ./foo/u1/u1r2.git/gl-perms
 
156
1b5af29692fad391318573bbe633b476  ./foo/u1/u1r3.git/gl-perms
 
157
df17cd2d47e4d99642d7c5ce4093d115  ./foo/u1/u1r4.git/gl-perms
 
158
';
 
159
try "cd $od";