Skip to content

Commit 4e7813c

Browse files
committed
Add protect-refs unit tests for branch/tag creation/deletion.
1 parent dafc19a commit 4e7813c

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

tests/com/gitblit/tests/GroovyScriptTest.java

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,97 @@ public void testSendMail() throws Exception {
8888
assertTrue(m.message.contains("BIT"));
8989
}
9090

91+
@Test
92+
public void testProtectRefsCreateBranch() throws Exception {
93+
MockGitblit gitblit = new MockGitblit();
94+
MockLogger logger = new MockLogger();
95+
List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
96+
commands.add(new ReceiveCommand(ObjectId.zeroId(), ObjectId
97+
.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master"));
98+
99+
RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date());
100+
101+
test("protect-refs.groovy", gitblit, logger, commands, repository);
102+
}
103+
104+
@Test
105+
public void testProtectRefsCreateTag() throws Exception {
106+
MockGitblit gitblit = new MockGitblit();
107+
MockLogger logger = new MockLogger();
108+
List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
109+
commands.add(new ReceiveCommand(ObjectId.zeroId(), ObjectId
110+
.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/tags/v1.0"));
111+
112+
RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date());
113+
114+
test("protect-refs.groovy", gitblit, logger, commands, repository);
115+
assertEquals(0, logger.messages.size());
116+
}
117+
118+
@Test
119+
public void testProtectRefsFastForward() throws Exception {
120+
MockGitblit gitblit = new MockGitblit();
121+
MockLogger logger = new MockLogger();
122+
List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
123+
commands.add(new ReceiveCommand(ObjectId
124+
.fromString("c18877690322dfc6ae3e37bb7f7085a24e94e887"), ObjectId
125+
.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), "refs/heads/master"));
126+
127+
RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date());
128+
129+
test("protect-refs.groovy", gitblit, logger, commands, repository);
130+
assertEquals(0, logger.messages.size());
131+
}
132+
133+
@Test
134+
public void testProtectRefsDeleteMasterBranch() throws Exception {
135+
MockGitblit gitblit = new MockGitblit();
136+
MockLogger logger = new MockLogger();
137+
List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
138+
ReceiveCommand command = new ReceiveCommand(ObjectId
139+
.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), ObjectId.zeroId(),
140+
"refs/heads/master");
141+
commands.add(command);
142+
143+
RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date());
144+
145+
test("protect-refs.groovy", gitblit, logger, commands, repository);
146+
assertEquals(ReceiveCommand.Result.REJECTED_NODELETE, command.getResult());
147+
assertEquals(0, logger.messages.size());
148+
}
149+
150+
@Test
151+
public void testProtectRefsDeleteOtherBranch() throws Exception {
152+
MockGitblit gitblit = new MockGitblit();
153+
MockLogger logger = new MockLogger();
154+
List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
155+
commands.add(new ReceiveCommand(ObjectId
156+
.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), ObjectId.zeroId(),
157+
"refs/heads/other"));
158+
159+
RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date());
160+
161+
test("protect-refs.groovy", gitblit, logger, commands, repository);
162+
assertEquals(0, logger.messages.size());
163+
}
164+
165+
@Test
166+
public void testProtectRefsDeleteTag() throws Exception {
167+
MockGitblit gitblit = new MockGitblit();
168+
MockLogger logger = new MockLogger();
169+
List<ReceiveCommand> commands = new ArrayList<ReceiveCommand>();
170+
ReceiveCommand command = new ReceiveCommand(ObjectId
171+
.fromString("3fa7c46d11b11d61f1cbadc6888be5d0eae21969"), ObjectId.zeroId(),
172+
"refs/tags/v1.0");
173+
commands.add(command);
174+
175+
RepositoryModel repository = new RepositoryModel("ex@mple.git", "", "admin", new Date());
176+
177+
test("protect-refs.groovy", gitblit, logger, commands, repository);
178+
assertEquals(ReceiveCommand.Result.REJECTED_NODELETE, command.getResult());
179+
assertEquals(0, logger.messages.size());
180+
}
181+
91182
@Test
92183
public void testBlockPush() throws Exception {
93184
MockGitblit gitblit = new MockGitblit();

0 commit comments

Comments
 (0)