summaryrefslogtreecommitdiffstats
path: root/src/test/java/com/gitblit/tests/ModelUtilsTest.java
blob: e34e0aa47bd1f54c8f9fd284658ae1f0042202b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package com.gitblit.tests;

import org.junit.After;
import org.junit.Test;

import com.gitblit.Constants;
import com.gitblit.utils.ModelUtils;

public class ModelUtilsTest extends GitblitUnitTest {

	@After
	public void resetPrefix()
	{
		ModelUtils.setUserRepoPrefix(null);
	}


	@Test
	public void testGetUserRepoPrefix()
	{
		assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX, ModelUtils.getUserRepoPrefix());
	}


	@Test
	public void testSetUserRepoPrefix()
	{

		assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX, ModelUtils.getUserRepoPrefix());

		ModelUtils.setUserRepoPrefix("@");
		assertEquals("@", ModelUtils.getUserRepoPrefix());

		ModelUtils.setUserRepoPrefix("");
		assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX, ModelUtils.getUserRepoPrefix());

		ModelUtils.setUserRepoPrefix("user/");
		assertEquals("user/", ModelUtils.getUserRepoPrefix());

		ModelUtils.setUserRepoPrefix("u_");
		assertEquals("u_", ModelUtils.getUserRepoPrefix());

		ModelUtils.setUserRepoPrefix(null);
		assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX, ModelUtils.getUserRepoPrefix());

		ModelUtils.setUserRepoPrefix("/somedir/otherdir/");
		assertEquals("somedir/otherdir/", ModelUtils.getUserRepoPrefix());
	}


	@Test
	public void testGetPersonalPath()
	{
		String username = "rob";
		assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX+username.toLowerCase(), ModelUtils.getPersonalPath(username));

		username = "James";
		assertEquals(Constants.DEFAULT_USER_REPOSITORY_PREFIX+username.toLowerCase(), ModelUtils.getPersonalPath(username));

		ModelUtils.setUserRepoPrefix("usr/");
		username = "noMan";
		assertEquals("usr/"+username.toLowerCase(), ModelUtils.getPersonalPath(username));
	}


	@Test
	public void testIsPersonalRepository()
	{
		String reponame = Constants.DEFAULT_USER_REPOSITORY_PREFIX + "one";
		assertTrue(ModelUtils.isPersonalRepository(reponame));

		reponame = "none";
		assertFalse(ModelUtils.isPersonalRepository(reponame));

		ModelUtils.setUserRepoPrefix("@@");
		reponame = "@@two";
		assertTrue(ModelUtils.isPersonalRepository(reponame));

		ModelUtils.setUserRepoPrefix("users/");
		reponame = "users/three";
		assertTrue(ModelUtils.isPersonalRepository(reponame));

		reponame = "project/four";
		assertFalse(ModelUtils.isPersonalRepository(reponame));
	}


	@Test
	public void testIsUsersPersonalRepository()
	{
		String reponame = Constants.DEFAULT_USER_REPOSITORY_PREFIX + "lynn";
		assertTrue(ModelUtils.isUsersPersonalRepository("lynn", reponame));

		reponame = "prjB";
		assertFalse(ModelUtils.isUsersPersonalRepository("lynn", reponame));

		ModelUtils.setUserRepoPrefix("@@");
		reponame = "@@newton";
		assertTrue(ModelUtils.isUsersPersonalRepository("newton", reponame));
		assertFalse(ModelUtils.isUsersPersonalRepository("hertz", reponame));

		ModelUtils.setUserRepoPrefix("users/");
		reponame = "users/fee";
		assertTrue(ModelUtils.isUsersPersonalRepository("fee", reponame));
		assertFalse(ModelUtils.isUsersPersonalRepository("gnome", reponame));

		reponame = "project/nsbl";
		assertFalse(ModelUtils.isUsersPersonalRepository("fee", reponame));
	}


	@Test
	public void testGetUserNameFromRepoPath()
	{
		String reponame = Constants.DEFAULT_USER_REPOSITORY_PREFIX + "lynn";
		assertEquals("lynn", ModelUtils.getUserNameFromRepoPath(reponame));

		ModelUtils.setUserRepoPrefix("@@");
		reponame = "@@newton";
		assertEquals("newton", ModelUtils.getUserNameFromRepoPath(reponame));

		ModelUtils.setUserRepoPrefix("users/");
		reponame = "users/fee";
		assertEquals("fee", ModelUtils.getUserNameFromRepoPath(reponame));
	}

}
"w"> * factor.y, width: original.width * factor.x}; // Set to state if (o.options.fade) { // Fade option to support puff if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;}; if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;}; }; // Animation options.from = el.from; options.to = el.to; options.mode = mode; // Animate el.effect('size', options, o.duration, o.callback); el.dequeue(); }); }; $.effects.size = function(o) { return this.queue(function() { // Create element var el = $(this), props = ['position','top','left','width','height','overflow','opacity']; var props1 = ['position','top','left','overflow','opacity']; // Always restore var props2 = ['width','height','overflow']; // Copy for children var cProps = ['fontSize']; var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom']; var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight']; // Set options var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode var restore = o.options.restore || false; // Default restore var scale = o.options.scale || 'both'; // Default scale mode var origin = o.options.origin; // The origin of the sizing var original = {height: el.height(), width: el.width()}; // Save original el.from = o.options.from || original; // Default from state el.to = o.options.to || original; // Default to state // Adjust if (origin) { // Calculate baseline shifts var baseline = $.effects.getBaseline(origin, original); el.from.top = (original.height - el.from.height) * baseline.y; el.from.left = (original.width - el.from.width) * baseline.x; el.to.top = (original.height - el.to.height) * baseline.y; el.to.left = (original.width - el.to.width) * baseline.x; }; var factor = { // Set scaling factor from: {y: el.from.height / original.height, x: el.from.width / original.width}, to: {y: el.to.height / original.height, x: el.to.width / original.width} }; if (scale == 'box' || scale == 'both') { // Scale the css box if (factor.from.y != factor.to.y) { // Vertical props scaling props = props.concat(vProps); el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from); el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to); }; if (factor.from.x != factor.to.x) { // Horizontal props scaling props = props.concat(hProps); el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from); el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to); }; }; if (scale == 'content' || scale == 'both') { // Scale the content if (factor.from.y != factor.to.y) { // Vertical props scaling props = props.concat(cProps); el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from); el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to); }; }; $.effects.save(el, restore ? props : props1); el.show(); // Save & Show $.effects.createWrapper(el); // Create Wrapper el.css('overflow','hidden').css(el.from); // Shift // Animate if (scale == 'content' || scale == 'both') { // Scale the children vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size hProps = hProps.concat(['marginLeft','marginRight']); // Add margins props2 = props.concat(vProps).concat(hProps); // Concat el.find("*[width]").each(function(){ child = $(this); if (restore) $.effects.save(child, props2); var c_original = {height: child.height(), width: child.width()}; // Save original child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x}; child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x}; if (factor.from.y != factor.to.y) { // Vertical props scaling child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from); child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to); }; if (factor.from.x != factor.to.x) { // Horizontal props scaling child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from); child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to); }; child.css(child.from); // Shift children child.animate(child.to, o.duration, o.options.easing, function(){ if (restore) $.effects.restore(child, props2); // Restore children }); // Animate children }); }; // Animate el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { if (el.to.opacity === 0) { el.css('opacity', el.from.opacity); } if(mode == 'hide') el.hide(); // Hide $.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore if(o.callback) o.callback.apply(this, arguments); // Callback el.dequeue(); }}); }); }; })(jQuery);