Commit 8808c5fa8d0102d1cf0641812a029434b0d6ede8
Exists in
master
and in
4 other branches
Merge branch 'master' into emoji
Showing
54 changed files
with
393 additions
and
458 deletions
Show diff stats
app/assets/javascripts/admin.js
@@ -1,11 +0,0 @@ | @@ -1,11 +0,0 @@ | ||
1 | -$(document).ready(function(){ | ||
2 | - $('input#user_force_random_password').on('change', function(elem) { | ||
3 | - var elems = $('#user_password, #user_password_confirmation'); | ||
4 | - | ||
5 | - if ($(this).attr('checked')) { | ||
6 | - elems.val('').attr('disabled', true); | ||
7 | - } else { | ||
8 | - elems.removeAttr('disabled'); | ||
9 | - } | ||
10 | - }); | ||
11 | -}); |
app/assets/javascripts/application.js
@@ -17,134 +17,3 @@ | @@ -17,134 +17,3 @@ | ||
17 | //= require raphael | 17 | //= require raphael |
18 | //= require branch-graph | 18 | //= require branch-graph |
19 | //= require_tree . | 19 | //= require_tree . |
20 | - | ||
21 | -$(document).ready(function(){ | ||
22 | - | ||
23 | - $(".one_click_select").live("click", function(){ | ||
24 | - $(this).select(); | ||
25 | - }); | ||
26 | - | ||
27 | - $('body').on('ajax:complete, ajax:beforeSend, submit', 'form', function(e){ | ||
28 | - var buttons = $('[type="submit"]', this); | ||
29 | - switch( e.type ){ | ||
30 | - case 'ajax:beforeSend': | ||
31 | - case 'submit': | ||
32 | - buttons.attr('disabled', 'disabled'); | ||
33 | - break; | ||
34 | - case ' ajax:complete': | ||
35 | - default: | ||
36 | - buttons.removeAttr('disabled'); | ||
37 | - break; | ||
38 | - } | ||
39 | - }) | ||
40 | - | ||
41 | - $(".account-box").mouseenter(showMenu); | ||
42 | - $(".account-box").mouseleave(resetMenu); | ||
43 | - | ||
44 | - $("#projects-list .project").live('click', function(e){ | ||
45 | - if(e.target.nodeName != "A" && e.target.nodeName != "INPUT") { | ||
46 | - location.href = $(this).attr("url"); | ||
47 | - e.stopPropagation(); | ||
48 | - return false; | ||
49 | - } | ||
50 | - }); | ||
51 | - | ||
52 | - /** | ||
53 | - * Focus search field by pressing 's' key | ||
54 | - */ | ||
55 | - $(document).keypress(function(e) { | ||
56 | - if( $(e.target).is(":input") ) return; | ||
57 | - switch(e.which) { | ||
58 | - case 115: focusSearch(); | ||
59 | - e.preventDefault(); | ||
60 | - } | ||
61 | - }); | ||
62 | - | ||
63 | - /** | ||
64 | - * Commit show suppressed diff | ||
65 | - * | ||
66 | - */ | ||
67 | - $(".supp_diff_link").bind("click", function() { | ||
68 | - showDiff(this); | ||
69 | - }); | ||
70 | - | ||
71 | - /** | ||
72 | - * Note markdown preview | ||
73 | - * | ||
74 | - */ | ||
75 | - $(document).on('click', '#preview-link', function(e) { | ||
76 | - $('#preview-note').text('Loading...'); | ||
77 | - | ||
78 | - var previewLinkText = ($(this).text() == 'Preview' ? 'Edit' : 'Preview'); | ||
79 | - $(this).text(previewLinkText); | ||
80 | - | ||
81 | - var note = $('#note_note').val(); | ||
82 | - if (note.trim().length === 0) { note = 'Nothing to preview'; } | ||
83 | - $.post($(this).attr('href'), {note: note}, function(data) { | ||
84 | - $('#preview-note').html(data); | ||
85 | - }); | ||
86 | - | ||
87 | - $('#preview-note, #note_note').toggle(); | ||
88 | - e.preventDefault(); | ||
89 | - }); | ||
90 | -}); | ||
91 | - | ||
92 | -function focusSearch() { | ||
93 | - $("#search").focus(); | ||
94 | -} | ||
95 | - | ||
96 | -function updatePage(data){ | ||
97 | - $.ajax({type: "GET", url: location.href, data: data, dataType: "script"}); | ||
98 | -} | ||
99 | - | ||
100 | -function showMenu() { | ||
101 | - $(this).toggleClass('hover'); | ||
102 | -} | ||
103 | - | ||
104 | -function resetMenu() { | ||
105 | - $(this).removeClass("hover"); | ||
106 | -} | ||
107 | - | ||
108 | -function slugify(text) { | ||
109 | - return text.replace(/[^-a-zA-Z0-9]+/g, '_').toLowerCase(); | ||
110 | -} | ||
111 | - | ||
112 | -function showDiff(link) { | ||
113 | - $(link).next('table').show(); | ||
114 | - $(link).remove(); | ||
115 | -} | ||
116 | - | ||
117 | -(function($){ | ||
118 | - var _chosen = $.fn.chosen; | ||
119 | - $.fn.extend({ | ||
120 | - chosen: function(options) { | ||
121 | - var default_options = {'search_contains' : 'true'}; | ||
122 | - $.extend(default_options, options); | ||
123 | - return _chosen.apply(this, [default_options]); | ||
124 | - }}) | ||
125 | -})(jQuery); | ||
126 | - | ||
127 | - | ||
128 | -function ajaxGet(url) { | ||
129 | - $.ajax({type: "GET", url: url, dataType: "script"}); | ||
130 | -} | ||
131 | - | ||
132 | -/** | ||
133 | - * Disable button if text field is empty | ||
134 | - */ | ||
135 | -function disableButtonIfEmtpyField(field_selector, button_selector) { | ||
136 | - field = $(field_selector); | ||
137 | - if(field.val() == "") { | ||
138 | - field.closest("form").find(button_selector).attr("disabled", "disabled").addClass("disabled"); | ||
139 | - } | ||
140 | - | ||
141 | - field.on('keyup', function(){ | ||
142 | - var field = $(this); | ||
143 | - var closest_submit = field.closest("form").find(button_selector); | ||
144 | - if(field.val() == "") { | ||
145 | - closest_submit.attr("disabled", "disabled").addClass("disabled"); | ||
146 | - } else { | ||
147 | - closest_submit.removeAttr("disabled").removeClass("disabled"); | ||
148 | - } | ||
149 | - }) | ||
150 | -} |
app/assets/javascripts/graph.js
@@ -1,10 +0,0 @@ | @@ -1,10 +0,0 @@ | ||
1 | -function initGraphNav() { | ||
2 | - $(".graph svg").css("position", "relative"); | ||
3 | - $("body").bind("keyup", function(e) { | ||
4 | - if(e.keyCode == 37) { // left | ||
5 | - $(".graph svg").animate({ left: "+=400" }); | ||
6 | - } else if(e.keyCode == 39) { // right | ||
7 | - $(".graph svg").animate({ left: "-=400" }); | ||
8 | - } | ||
9 | - }); | ||
10 | -} |
@@ -0,0 +1,10 @@ | @@ -0,0 +1,10 @@ | ||
1 | +initGraphNav = -> | ||
2 | + $('.graph svg').css 'position', 'relative' | ||
3 | + | ||
4 | + $('body').bind 'keyup', (e) -> | ||
5 | + if e.keyCode is 37 # left | ||
6 | + $('.graph svg').animate left: '+=400' | ||
7 | + else if e.keyCode is 39 # right | ||
8 | + $('.graph svg').animate left: '-=400' | ||
9 | + | ||
10 | +window.initGraphNav = initGraphNav |
app/assets/javascripts/loader.js
@@ -0,0 +1,130 @@ | @@ -0,0 +1,130 @@ | ||
1 | +$(document).ready(function(){ | ||
2 | + | ||
3 | + $(".one_click_select").live("click", function(){ | ||
4 | + $(this).select(); | ||
5 | + }); | ||
6 | + | ||
7 | + $('body').on('ajax:complete, ajax:beforeSend, submit', 'form', function(e){ | ||
8 | + var buttons = $('[type="submit"]', this); | ||
9 | + switch( e.type ){ | ||
10 | + case 'ajax:beforeSend': | ||
11 | + case 'submit': | ||
12 | + buttons.attr('disabled', 'disabled'); | ||
13 | + break; | ||
14 | + case ' ajax:complete': | ||
15 | + default: | ||
16 | + buttons.removeAttr('disabled'); | ||
17 | + break; | ||
18 | + } | ||
19 | + }) | ||
20 | + | ||
21 | + $(".account-box").mouseenter(showMenu); | ||
22 | + $(".account-box").mouseleave(resetMenu); | ||
23 | + | ||
24 | + $("#projects-list .project").live('click', function(e){ | ||
25 | + if(e.target.nodeName != "A" && e.target.nodeName != "INPUT") { | ||
26 | + location.href = $(this).attr("url"); | ||
27 | + e.stopPropagation(); | ||
28 | + return false; | ||
29 | + } | ||
30 | + }); | ||
31 | + | ||
32 | + /** | ||
33 | + * Focus search field by pressing 's' key | ||
34 | + */ | ||
35 | + $(document).keypress(function(e) { | ||
36 | + if( $(e.target).is(":input") ) return; | ||
37 | + switch(e.which) { | ||
38 | + case 115: focusSearch(); | ||
39 | + e.preventDefault(); | ||
40 | + } | ||
41 | + }); | ||
42 | + | ||
43 | + /** | ||
44 | + * Commit show suppressed diff | ||
45 | + * | ||
46 | + */ | ||
47 | + $(".supp_diff_link").bind("click", function() { | ||
48 | + showDiff(this); | ||
49 | + }); | ||
50 | + | ||
51 | + /** | ||
52 | + * Note markdown preview | ||
53 | + * | ||
54 | + */ | ||
55 | + $(document).on('click', '#preview-link', function(e) { | ||
56 | + $('#preview-note').text('Loading...'); | ||
57 | + | ||
58 | + var previewLinkText = ($(this).text() == 'Preview' ? 'Edit' : 'Preview'); | ||
59 | + $(this).text(previewLinkText); | ||
60 | + | ||
61 | + var note = $('#note_note').val(); | ||
62 | + if (note.trim().length === 0) { note = 'Nothing to preview'; } | ||
63 | + $.post($(this).attr('href'), {note: note}, function(data) { | ||
64 | + $('#preview-note').html(data); | ||
65 | + }); | ||
66 | + | ||
67 | + $('#preview-note, #note_note').toggle(); | ||
68 | + e.preventDefault(); | ||
69 | + }); | ||
70 | +}); | ||
71 | + | ||
72 | +function focusSearch() { | ||
73 | + $("#search").focus(); | ||
74 | +} | ||
75 | + | ||
76 | +function updatePage(data){ | ||
77 | + $.ajax({type: "GET", url: location.href, data: data, dataType: "script"}); | ||
78 | +} | ||
79 | + | ||
80 | +function showMenu() { | ||
81 | + $(this).toggleClass('hover'); | ||
82 | +} | ||
83 | + | ||
84 | +function resetMenu() { | ||
85 | + $(this).removeClass("hover"); | ||
86 | +} | ||
87 | + | ||
88 | +function slugify(text) { | ||
89 | + return text.replace(/[^-a-zA-Z0-9]+/g, '_').toLowerCase(); | ||
90 | +} | ||
91 | + | ||
92 | +function showDiff(link) { | ||
93 | + $(link).next('table').show(); | ||
94 | + $(link).remove(); | ||
95 | +} | ||
96 | + | ||
97 | +(function($){ | ||
98 | + var _chosen = $.fn.chosen; | ||
99 | + $.fn.extend({ | ||
100 | + chosen: function(options) { | ||
101 | + var default_options = {'search_contains' : 'true'}; | ||
102 | + $.extend(default_options, options); | ||
103 | + return _chosen.apply(this, [default_options]); | ||
104 | + }}) | ||
105 | +})(jQuery); | ||
106 | + | ||
107 | + | ||
108 | +function ajaxGet(url) { | ||
109 | + $.ajax({type: "GET", url: url, dataType: "script"}); | ||
110 | +} | ||
111 | + | ||
112 | +/** | ||
113 | + * Disable button if text field is empty | ||
114 | + */ | ||
115 | +function disableButtonIfEmtpyField(field_selector, button_selector) { | ||
116 | + field = $(field_selector); | ||
117 | + if(field.val() == "") { | ||
118 | + field.closest("form").find(button_selector).attr("disabled", "disabled").addClass("disabled"); | ||
119 | + } | ||
120 | + | ||
121 | + field.on('keyup', function(){ | ||
122 | + var field = $(this); | ||
123 | + var closest_submit = field.closest("form").find(button_selector); | ||
124 | + if(field.val() == "") { | ||
125 | + closest_submit.attr("disabled", "disabled").addClass("disabled"); | ||
126 | + } else { | ||
127 | + closest_submit.removeAttr("disabled").removeClass("disabled"); | ||
128 | + } | ||
129 | + }) | ||
130 | +} |
app/assets/javascripts/projects.js.coffee
1 | window.Projects = -> | 1 | window.Projects = -> |
2 | - $("#project_name").live "change", -> | ||
3 | - slug = slugify($(this).val()) | ||
4 | - $("#project_code").val(slug) | ||
5 | - $("#project_path").val(slug) | 2 | + $('#project_name').on 'change', -> |
3 | + slug = slugify $(@).val() | ||
4 | + $('#project_code, #project_path').val slug | ||
6 | 5 | ||
7 | - $(".new_project, .edit_project").live "ajax:before", -> | ||
8 | - $(".project_new_holder, .project_edit_holder").hide() | ||
9 | - $(".save-project-loader").show() | 6 | + $('.new_project, .edit_project').on 'ajax:before', -> |
7 | + $('.project_new_holder, .project_edit_holder').hide() | ||
8 | + $('.save-project-loader').show() | ||
10 | 9 | ||
11 | - $("form #project_default_branch").chosen() | ||
12 | - disableButtonIfEmtpyField "#project_name", ".project-submit" | 10 | + $('form #project_default_branch').chosen() |
11 | + disableButtonIfEmtpyField '#project_name', '.project-submit' | ||
13 | 12 | ||
14 | # Git clone panel switcher | 13 | # Git clone panel switcher |
15 | $ -> | 14 | $ -> |
16 | - scope = $('.project_clone_holder') | 15 | + scope = $ '.project_clone_holder' |
17 | if scope.length > 0 | 16 | if scope.length > 0 |
18 | $('a, button', scope).click -> | 17 | $('a, button', scope).click -> |
19 | - $('a, button', scope).removeClass('active') | ||
20 | - $(this).addClass('active') | ||
21 | - $('#project_clone', scope).val($(this).data('clone')) | 18 | + $('a, button', scope).removeClass 'active' |
19 | + $(@).addClass 'active' | ||
20 | + $('#project_clone', scope).val $(@).data 'clone' |
app/assets/javascripts/snippets.js
app/assets/javascripts/team.js
@@ -1,8 +0,0 @@ | @@ -1,8 +0,0 @@ | ||
1 | -function backToMembers(){ | ||
2 | - $("#new_team_member").hide("slide", { direction: "right" }, 150, function(){ | ||
3 | - $("#team-table").show("slide", { direction: "left" }, 150, function() { | ||
4 | - $("#new_team_member").remove(); | ||
5 | - $(".add_new").show(); | ||
6 | - }); | ||
7 | - }); | ||
8 | -} |
app/assets/stylesheets/gitlab_bootstrap/files.scss
app/assets/stylesheets/main.scss
1 | @import "bootstrap"; | 1 | @import "bootstrap"; |
2 | @import "bootstrap-responsive"; | 2 | @import "bootstrap-responsive"; |
3 | 3 | ||
4 | -/** GITLAB colors **/ | 4 | +/** GitLab colors **/ |
5 | $link_color:#3A89A3; | 5 | $link_color:#3A89A3; |
6 | $blue_link: #2fa0bb; | 6 | $blue_link: #2fa0bb; |
7 | $style_color: #474d57; | 7 | $style_color: #474d57; |
8 | $hover: #fdf5d9; | 8 | $hover: #fdf5d9; |
9 | 9 | ||
10 | -/** GITLAB Fonts **/ | 10 | +/** GitLab Fonts **/ |
11 | @font-face { font-family: Korolev; src: url('korolev-medium-compressed.otf'); } | 11 | @font-face { font-family: Korolev; src: url('korolev-medium-compressed.otf'); } |
12 | 12 | ||
13 | /** MIXINS **/ | 13 | /** MIXINS **/ |
@@ -113,9 +113,9 @@ $hover: #fdf5d9; | @@ -113,9 +113,9 @@ $hover: #fdf5d9; | ||
113 | @import "themes/ui_modern.scss"; | 113 | @import "themes/ui_modern.scss"; |
114 | 114 | ||
115 | /** | 115 | /** |
116 | - * Gitlab bootstrap. | 116 | + * GitLab bootstrap. |
117 | * Overrides some styles of twitter bootstrap. | 117 | * Overrides some styles of twitter bootstrap. |
118 | - * Also give some common classes for gitlab app | 118 | + * Also give some common classes for GitLab app |
119 | */ | 119 | */ |
120 | @import "gitlab_bootstrap/common.scss"; | 120 | @import "gitlab_bootstrap/common.scss"; |
121 | @import "gitlab_bootstrap/typography.scss"; | 121 | @import "gitlab_bootstrap/typography.scss"; |
app/assets/stylesheets/sections/header.scss
@@ -22,7 +22,7 @@ header { | @@ -22,7 +22,7 @@ header { | ||
22 | * | 22 | * |
23 | */ | 23 | */ |
24 | .app_logo { | 24 | .app_logo { |
25 | - width:230px; | 25 | + width:200px; |
26 | float:left; | 26 | float:left; |
27 | position:relative; | 27 | position:relative; |
28 | top:-5px; | 28 | top:-5px; |
@@ -31,7 +31,7 @@ header { | @@ -31,7 +31,7 @@ header { | ||
31 | 31 | ||
32 | h1 { | 32 | h1 { |
33 | padding-top: 5px; | 33 | padding-top: 5px; |
34 | - width:102px; | 34 | + width:90px; |
35 | background: url('logo_dark.png') no-repeat 0px -3px; | 35 | background: url('logo_dark.png') no-repeat 0px -3px; |
36 | float:left; | 36 | float:left; |
37 | margin-left:5px; | 37 | margin-left:5px; |
app/assets/stylesheets/sections/nav.scss
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | * Main Menu of Application | 2 | * Main Menu of Application |
3 | * | 3 | * |
4 | */ | 4 | */ |
5 | -ul.main_menu { | 5 | +ul.main_menu { |
6 | border-radius: 4px; | 6 | border-radius: 4px; |
7 | margin: auto; | 7 | margin: auto; |
8 | margin:30px 0; | 8 | margin:30px 0; |
@@ -12,7 +12,7 @@ ul.main_menu { | @@ -12,7 +12,7 @@ ul.main_menu { | ||
12 | position:relative; | 12 | position:relative; |
13 | overflow:hidden; | 13 | overflow:hidden; |
14 | @include shade; | 14 | @include shade; |
15 | - .count { | 15 | + .count { |
16 | position: relative; | 16 | position: relative; |
17 | top: -1px; | 17 | top: -1px; |
18 | display: inline-block; | 18 | display: inline-block; |
@@ -29,12 +29,12 @@ ul.main_menu { | @@ -29,12 +29,12 @@ ul.main_menu { | ||
29 | border-radius: 8px; | 29 | border-radius: 8px; |
30 | -moz-border-radius: 8px; | 30 | -moz-border-radius: 8px; |
31 | } | 31 | } |
32 | - .label { | 32 | + .label { |
33 | background:$hover; | 33 | background:$hover; |
34 | text-shadow:none; | 34 | text-shadow:none; |
35 | color:$style_color; | 35 | color:$style_color; |
36 | } | 36 | } |
37 | - li { | 37 | + li { |
38 | list-style-type: none; | 38 | list-style-type: none; |
39 | margin: 0; | 39 | margin: 0; |
40 | display: table-cell; | 40 | display: table-cell; |
@@ -43,7 +43,7 @@ ul.main_menu { | @@ -43,7 +43,7 @@ ul.main_menu { | ||
43 | border-left: 1px solid #EEE; | 43 | border-left: 1px solid #EEE; |
44 | border-bottom:2px solid #CFCFCF; | 44 | border-bottom:2px solid #CFCFCF; |
45 | 45 | ||
46 | - &:first-child{ | 46 | + &:first-child{ |
47 | -webkit-border-top-left-radius: 4px; | 47 | -webkit-border-top-left-radius: 4px; |
48 | -webkit-border-bottom-left-radius: 4px; | 48 | -webkit-border-bottom-left-radius: 4px; |
49 | -moz-border-radius-topleft: 4px; | 49 | -moz-border-radius-topleft: 4px; |
@@ -53,31 +53,31 @@ ul.main_menu { | @@ -53,31 +53,31 @@ ul.main_menu { | ||
53 | border-left: 0; | 53 | border-left: 0; |
54 | } | 54 | } |
55 | 55 | ||
56 | - &.current { | 56 | + &.current { |
57 | background-color:#D5D5D5; | 57 | background-color:#D5D5D5; |
58 | - border-bottom: 2px solid $style_color; | 58 | + border-bottom: 1px solid #AAA; |
59 | border-right: 1px solid #BBB; | 59 | border-right: 1px solid #BBB; |
60 | border-left: 1px solid #BBB; | 60 | border-left: 1px solid #BBB; |
61 | border-radius: 0 0 1px 1px; | 61 | border-radius: 0 0 1px 1px; |
62 | - &:first-child{ | 62 | + &:first-child{ |
63 | border-bottom:none; | 63 | border-bottom:none; |
64 | border-left:none; | 64 | border-left:none; |
65 | } | 65 | } |
66 | } | 66 | } |
67 | 67 | ||
68 | - &.home { | ||
69 | - a { | 68 | + &.home { |
69 | + a { | ||
70 | background: url(home_icon.PNG) no-repeat center center; | 70 | background: url(home_icon.PNG) no-repeat center center; |
71 | text-indent:-9999px; | 71 | text-indent:-9999px; |
72 | min-width:20px; | 72 | min-width:20px; |
73 | - img { | 73 | + img { |
74 | position:relative; | 74 | position:relative; |
75 | top:4px; | 75 | top:4px; |
76 | } | 76 | } |
77 | } | 77 | } |
78 | } | 78 | } |
79 | } | 79 | } |
80 | - a { | 80 | + a { |
81 | display: block; | 81 | display: block; |
82 | text-align: center; | 82 | text-align: center; |
83 | font-weight:bold; | 83 | font-weight:bold; |
app/controllers/commits_controller.rb
@@ -64,19 +64,14 @@ class CommitsController < ApplicationController | @@ -64,19 +64,14 @@ class CommitsController < ApplicationController | ||
64 | @commit.to_patch, | 64 | @commit.to_patch, |
65 | type: "text/plain", | 65 | type: "text/plain", |
66 | disposition: 'attachment', | 66 | disposition: 'attachment', |
67 | - filename: (@commit.id.to_s + ".patch") | 67 | + filename: "#{@commit.id.patch}" |
68 | ) | 68 | ) |
69 | end | 69 | end |
70 | 70 | ||
71 | protected | 71 | protected |
72 | 72 | ||
73 | def load_refs | 73 | def load_refs |
74 | - if params[:ref].blank? | ||
75 | - @branch = params[:branch].blank? ? nil : params[:branch] | ||
76 | - @tag = params[:tag].blank? ? nil : params[:tag] | ||
77 | - @ref = @branch || @tag || @project.try(:default_branch) || 'master' | ||
78 | - else | ||
79 | - @ref = params[:ref] | ||
80 | - end | 74 | + @ref ||= params[:ref].presence || params[:branch].presence || params[:tag].presence |
75 | + @ref ||= @ref || @project.try(:default_branch) || 'master' | ||
81 | end | 76 | end |
82 | end | 77 | end |
app/mailers/notify.rb
@@ -111,18 +111,18 @@ class Notify < ActionMailer::Base | @@ -111,18 +111,18 @@ class Notify < ActionMailer::Base | ||
111 | # Examples | 111 | # Examples |
112 | # | 112 | # |
113 | # >> subject('Lorem ipsum') | 113 | # >> subject('Lorem ipsum') |
114 | - # => "gitlab | Lorem ipsum" | 114 | + # => "GitLab | Lorem ipsum" |
115 | # | 115 | # |
116 | # # Automatically inserts Project name when @project is set | 116 | # # Automatically inserts Project name when @project is set |
117 | # >> @project = Project.last | 117 | # >> @project = Project.last |
118 | # => #<Project id: 1, name: "Ruby on Rails", path: "ruby_on_rails", ...> | 118 | # => #<Project id: 1, name: "Ruby on Rails", path: "ruby_on_rails", ...> |
119 | # >> subject('Lorem ipsum') | 119 | # >> subject('Lorem ipsum') |
120 | - # => "gitlab | Lorem ipsum | Ruby on Rails" | 120 | + # => "GitLab | Lorem ipsum | Ruby on Rails" |
121 | # | 121 | # |
122 | # # Accepts multiple arguments | 122 | # # Accepts multiple arguments |
123 | # >> subject('Lorem ipsum', 'Dolor sit amet') | 123 | # >> subject('Lorem ipsum', 'Dolor sit amet') |
124 | - # => "gitlab | Lorem ipsum | Dolor sit amet" | 124 | + # => "GitLab | Lorem ipsum | Dolor sit amet" |
125 | def subject(*extra) | 125 | def subject(*extra) |
126 | - "gitlab | " << extra.join(' | ') << (@project ? " | #{@project.name}" : "") | 126 | + "GitLab | " << extra.join(' | ') << (@project ? " | #{@project.name}" : "") |
127 | end | 127 | end |
128 | end | 128 | end |
app/views/errors/gitolite.html.haml
app/views/help/index.html.haml
@@ -30,7 +30,7 @@ | @@ -30,7 +30,7 @@ | ||
30 | %h5= link_to "API", help_api_path | 30 | %h5= link_to "API", help_api_path |
31 | 31 | ||
32 | %li | 32 | %li |
33 | - %h5= link_to "Gitlab Markdown", help_markdown_path | 33 | + %h5= link_to "GitLab Markdown", help_markdown_path |
34 | 34 | ||
35 | %li | 35 | %li |
36 | %h5= link_to "SSH keys", help_ssh_path | 36 | %h5= link_to "SSH keys", help_ssh_path |
app/views/help/markdown.html.haml
1 | -%h3.page_title Gitlab Flavored Markdown | 1 | +%h3.page_title GitLab Flavored Markdown |
2 | .back_link | 2 | .back_link |
3 | = link_to help_path do | 3 | = link_to help_path do |
4 | ← to index | 4 | ← to index |
@@ -7,7 +7,7 @@ | @@ -7,7 +7,7 @@ | ||
7 | .row | 7 | .row |
8 | .span8 | 8 | .span8 |
9 | %p | 9 | %p |
10 | - For Gitlab we developed something we call "Gitlab Flavored Markdown" (GFM). | 10 | + For GitLab we developed something we call "GitLab Flavored Markdown" (GFM). |
11 | It extends the standard Markdown in a few significant ways adds some useful functionality. | 11 | It extends the standard Markdown in a few significant ways adds some useful functionality. |
12 | 12 | ||
13 | %p You can use GFM in: | 13 | %p You can use GFM in: |
@@ -62,7 +62,7 @@ | @@ -62,7 +62,7 @@ | ||
62 | %p becomes | 62 | %p becomes |
63 | = markdown %Q{```ruby\nrequire 'redcarpet'\nmarkdown = Redcarpet.new("Hello World!")\nputs markdown.to_html\n```} | 63 | = markdown %Q{```ruby\nrequire 'redcarpet'\nmarkdown = Redcarpet.new("Hello World!")\nputs markdown.to_html\n```} |
64 | 64 | ||
65 | - %h4 Special Gitlab references | 65 | + %h4 Special GitLab references |
66 | 66 | ||
67 | %p | 67 | %p |
68 | GFM recognizes special references. | 68 | GFM recognizes special references. |
app/views/help/ssh.html.haml
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
5 | %hr | 5 | %hr |
6 | 6 | ||
7 | %p.slead | 7 | %p.slead |
8 | - SSH key allows you to establish a secure connection between your computer and Gitlab | 8 | + SSH key allows you to establish a secure connection between your computer and GitLab |
9 | 9 | ||
10 | %p.slead | 10 | %p.slead |
11 | To generate a new SSH key just open your terminal and use code below. | 11 | To generate a new SSH key just open your terminal and use code below. |
@@ -17,7 +17,7 @@ | @@ -17,7 +17,7 @@ | ||
17 | \# Generating public/private rsa key pair... | 17 | \# Generating public/private rsa key pair... |
18 | 18 | ||
19 | %p.slead | 19 | %p.slead |
20 | - Next just use code below to dump your public key and add to GITLAB SSH Keys | 20 | + Next just use code below to dump your public key and add to GitLab SSH Keys |
21 | 21 | ||
22 | %pre.dark | 22 | %pre.dark |
23 | cat ~/.ssh/id_rsa.pub | 23 | cat ~/.ssh/id_rsa.pub |
app/views/help/system_hooks.html.haml
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
5 | %hr | 5 | %hr |
6 | 6 | ||
7 | %p.slead | 7 | %p.slead |
8 | - Your Gitlab instance can perform HTTP POST request on next event: create_project, delete_project, create_user, delete_user, change_team_member. | 8 | + Your GitLab instance can perform HTTP POST request on next event: create_project, delete_project, create_user, delete_user, change_team_member. |
9 | %br | 9 | %br |
10 | System Hooks can be used for logging or change information in LDAP server. | 10 | System Hooks can be used for logging or change information in LDAP server. |
11 | %br | 11 | %br |
app/views/help/web_hooks.html.haml
@@ -5,11 +5,11 @@ | @@ -5,11 +5,11 @@ | ||
5 | %hr | 5 | %hr |
6 | 6 | ||
7 | %p.slead | 7 | %p.slead |
8 | - Every Gitlab project can trigger a web server whenever the repo is pushed to. | 8 | + Every GitLab project can trigger a web server whenever the repo is pushed to. |
9 | %br | 9 | %br |
10 | Web Hooks can be used to update an external issue tracker, trigger CI builds, update a backup mirror, or even deploy to your production server. | 10 | Web Hooks can be used to update an external issue tracker, trigger CI builds, update a backup mirror, or even deploy to your production server. |
11 | %br | 11 | %br |
12 | - GITLAB will send POST request with commits information on every push. | 12 | + GitLab will send POST request with commits information on every push. |
13 | %h5 Hooks request example: | 13 | %h5 Hooks request example: |
14 | = render "hooks/data_ex" | 14 | = render "hooks/data_ex" |
15 | 15 |
app/views/help/workflow.html.haml
@@ -24,7 +24,7 @@ | @@ -24,7 +24,7 @@ | ||
24 | git commit -am "My feature is ready" | 24 | git commit -am "My feature is ready" |
25 | 25 | ||
26 | %li | 26 | %li |
27 | - %p Push your branch to gitlabhq | 27 | + %p Push your branch to GitLab |
28 | .bash | 28 | .bash |
29 | %pre.dark | 29 | %pre.dark |
30 | git push origin $feature_name | 30 | git push origin $feature_name |
app/views/hooks/_data_ex.html.erb
@@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
32 | :timestamp => "2012-01-03T23:36:29+02:00", | 32 | :timestamp => "2012-01-03T23:36:29+02:00", |
33 | :url => "http://localhost/diaspora/commits/da1560886d...", | 33 | :url => "http://localhost/diaspora/commits/da1560886d...", |
34 | :author => { | 34 | :author => { |
35 | - :name => "gitlab dev user", | 35 | + :name => "GitLab dev user", |
36 | :email => "gitlabdev@dv6700.(none)" | 36 | :email => "gitlabdev@dv6700.(none)" |
37 | } | 37 | } |
38 | } | 38 | } |
app/views/issues/_form.html.haml
@@ -38,7 +38,7 @@ | @@ -38,7 +38,7 @@ | ||
38 | = f.label :description, "Details" | 38 | = f.label :description, "Details" |
39 | .input | 39 | .input |
40 | = f.text_area :description, maxlength: 2000, class: "xxlarge", rows: 14 | 40 | = f.text_area :description, maxlength: 2000, class: "xxlarge", rows: 14 |
41 | - %p.hint Issues are parsed with #{link_to "Gitlab Flavored Markdown", help_markdown_path, target: '_blank'}. | 41 | + %p.hint Issues are parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}. |
42 | 42 | ||
43 | 43 | ||
44 | .actions | 44 | .actions |
app/views/keys/index.html.haml
app/views/layouts/notify.html.haml
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | %head | 2 | %head |
3 | %meta{content: "text/html; charset=utf-8", "http-equiv" => "Content-Type"} | 3 | %meta{content: "text/html; charset=utf-8", "http-equiv" => "Content-Type"} |
4 | %title | 4 | %title |
5 | - gitlabhq | 5 | + GitLab |
6 | :css | 6 | :css |
7 | .header h1 {color: #BBBBBB !important; font: bold 32px Helvetica, Arial, sans-serif; margin: 0; padding: 0; line-height: 40px;} | 7 | .header h1 {color: #BBBBBB !important; font: bold 32px Helvetica, Arial, sans-serif; margin: 0; padding: 0; line-height: 40px;} |
8 | .header p {color: #c6c6c6; font: normal 12px Helvetica, Arial, sans-serif; margin: 0; padding: 0; line-height: 18px;} | 8 | .header p {color: #c6c6c6; font: normal 12px Helvetica, Arial, sans-serif; margin: 0; padding: 0; line-height: 18px;} |
@@ -21,7 +21,7 @@ | @@ -21,7 +21,7 @@ | ||
21 | \ | 21 | \ |
22 | %td{align: "left", style: "padding: 18px 0 10px;", width: "580"} | 22 | %td{align: "left", style: "padding: 18px 0 10px;", width: "580"} |
23 | %h1{style: "color: #BBBBBB; font: normal 32px Helvetica, Arial, sans-serif; margin: 0; padding: 0; line-height: 40px;"} | 23 | %h1{style: "color: #BBBBBB; font: normal 32px Helvetica, Arial, sans-serif; margin: 0; padding: 0; line-height: 40px;"} |
24 | - gitlab | 24 | + GITLAB |
25 | - if @project | 25 | - if @project |
26 | | #{@project.name} | 26 | | #{@project.name} |
27 | %table{align: "center", bgcolor: "#fff", border: "0", cellpadding: "0", cellspacing: "0", style: "font-family: Helvetica, Arial, sans-serif; background: #fff;", width: "600"} | 27 | %table{align: "center", bgcolor: "#fff", border: "0", cellpadding: "0", cellspacing: "0", style: "font-family: Helvetica, Arial, sans-serif; background: #fff;", width: "600"} |
app/views/milestones/_form.html.haml
@@ -22,7 +22,7 @@ | @@ -22,7 +22,7 @@ | ||
22 | = f.label :description, "Description", class: "control-label" | 22 | = f.label :description, "Description", class: "control-label" |
23 | .controls | 23 | .controls |
24 | = f.text_area :description, maxlength: 2000, class: "input-xlarge", rows: 10 | 24 | = f.text_area :description, maxlength: 2000, class: "input-xlarge", rows: 10 |
25 | - %p.hint Milestones are parsed with #{link_to "Gitlab Flavored Markdown", help_markdown_path, target: '_blank'}. | 25 | + %p.hint Milestones are parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}. |
26 | .span6 | 26 | .span6 |
27 | .control-group | 27 | .control-group |
28 | = f.label :due_date, "Due Date", class: "control-label" | 28 | = f.label :due_date, "Due Date", class: "control-label" |
app/views/notes/_form.html.haml
@@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
11 | = f.text_area :note, size: 255, class: 'note-text' | 11 | = f.text_area :note, size: 255, class: 'note-text' |
12 | #preview-note.preview_note.hide | 12 | #preview-note.preview_note.hide |
13 | .hint | 13 | .hint |
14 | - .right Comments are parsed with #{link_to "Gitlab Flavored Markdown", help_markdown_path, target: '_blank'}. | 14 | + .right Comments are parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}. |
15 | .clearfix | 15 | .clearfix |
16 | 16 | ||
17 | .row.note_advanced_opts.hide | 17 | .row.note_advanced_opts.hide |
app/views/notify/new_user_email.html.haml
@@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
6 | %h2{style: "color:#646464; font-weight: bold; margin: 0; padding: 0; line-height: 26px; font-size: 18px; font-family: Helvetica, Arial, sans-serif; "} | 6 | %h2{style: "color:#646464; font-weight: bold; margin: 0; padding: 0; line-height: 26px; font-size: 18px; font-family: Helvetica, Arial, sans-serif; "} |
7 | Hi #{@user['name']}! | 7 | Hi #{@user['name']}! |
8 | %p{style: "color:#767676; font-weight: normal; margin: 0; padding: 0; line-height: 20px; font-size: 12px;font-family: Helvetica, Arial, sans-serif; "} | 8 | %p{style: "color:#767676; font-weight: normal; margin: 0; padding: 0; line-height: 20px; font-size: 12px;font-family: Helvetica, Arial, sans-serif; "} |
9 | - Administrator created account for you. Now you are a member of company gitlab application. | 9 | + Administrator created account for you. Now you are a member of company GitLab application. |
10 | %td{style: "font-size: 1px; line-height: 1px;", width: "21"} | 10 | %td{style: "font-size: 1px; line-height: 1px;", width: "21"} |
11 | %tr | 11 | %tr |
12 | %td{style: "font-size: 1px; line-height: 1px;", width: "21"} | 12 | %td{style: "font-size: 1px; line-height: 1px;", width: "21"} |
app/views/wikis/_form.html.haml
@@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
14 | .middle_box_content | 14 | .middle_box_content |
15 | .input | 15 | .input |
16 | %span.cgray | 16 | %span.cgray |
17 | - Wiki content is parsed with #{link_to "Gitlab Flavored Markdown", help_markdown_path, target: '_blank'}. | 17 | + Wiki content is parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}. |
18 | To link to a (new) page you can just type | 18 | To link to a (new) page you can just type |
19 | %code [Link Title](page-slug) | 19 | %code [Link Title](page-slug) |
20 | \. | 20 | \. |
doc/api/README.md
1 | -# Gitlab API | 1 | +# GitLab API |
2 | 2 | ||
3 | All API requests require authentication. You need to pass a `private_token` parameter to authenticate. You can find or reset your private token in your profile. | 3 | All API requests require authentication. You need to pass a `private_token` parameter to authenticate. You can find or reset your private token in your profile. |
4 | 4 | ||
@@ -10,7 +10,7 @@ If no, or an invalid, `private_token` is provided then an error message will be | @@ -10,7 +10,7 @@ If no, or an invalid, `private_token` is provided then an error message will be | ||
10 | } | 10 | } |
11 | ``` | 11 | ``` |
12 | 12 | ||
13 | -API requests should be prefixed with `api` and the API version. The API version is equal to the Gitlab major version number, which is defined in `lib/api.rb`. | 13 | +API requests should be prefixed with `api` and the API version. The API version is equal to the GitLab major version number, which is defined in `lib/api.rb`. |
14 | 14 | ||
15 | Example of a valid API request: | 15 | Example of a valid API request: |
16 | 16 |
doc/installation.md
@@ -167,7 +167,7 @@ and ensure you have followed all of the above steps carefully. | @@ -167,7 +167,7 @@ and ensure you have followed all of the above steps carefully. | ||
167 | # Login to MySQL | 167 | # Login to MySQL |
168 | $ mysql -u root -p | 168 | $ mysql -u root -p |
169 | 169 | ||
170 | - # Create the gitlabhq production database | 170 | + # Create the GitLab production database |
171 | mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; | 171 | mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`; |
172 | 172 | ||
173 | # Create the MySQL User change $password to a real password | 173 | # Create the MySQL User change $password to a real password |
features/projects/issues/issues.feature
@@ -4,7 +4,7 @@ Feature: Issues | @@ -4,7 +4,7 @@ Feature: Issues | ||
4 | And I own project "Shop" | 4 | And I own project "Shop" |
5 | And project "Shop" have "Release 0.4" open issue | 5 | And project "Shop" have "Release 0.4" open issue |
6 | And project "Shop" have "Release 0.3" closed issue | 6 | And project "Shop" have "Release 0.3" closed issue |
7 | - And I visit project "Shop" issues page | 7 | + And I visit project "Shop" issues page |
8 | 8 | ||
9 | Scenario: I should see open issues | 9 | Scenario: I should see open issues |
10 | Given I should see "Release 0.4" in issues | 10 | Given I should see "Release 0.4" in issues |
@@ -36,3 +36,31 @@ Feature: Issues | @@ -36,3 +36,31 @@ Feature: Issues | ||
36 | Given I visit issue page "Release 0.4" | 36 | Given I visit issue page "Release 0.4" |
37 | And I leave a comment like "XML attached" | 37 | And I leave a comment like "XML attached" |
38 | Then I should see comment "XML attached" | 38 | Then I should see comment "XML attached" |
39 | + | ||
40 | + @javascript | ||
41 | + Scenario: I search issue | ||
42 | + Given I fill in issue search with "Release" | ||
43 | + Then I should see "Release 0.4" in issues | ||
44 | + And I should not see "Release 0.3" in issues | ||
45 | + | ||
46 | + @javascript | ||
47 | + Scenario: I search issue that not exist | ||
48 | + Given I fill in issue search with "Bug" | ||
49 | + Then I should not see "Release 0.4" in issues | ||
50 | + And I should not see "Release 0.3" in issues | ||
51 | + | ||
52 | + | ||
53 | + @javascript | ||
54 | + Scenario: I search all issues | ||
55 | + Given I click link "All" | ||
56 | + And I fill in issue search with "0.3" | ||
57 | + Then I should see "Release 0.3" in issues | ||
58 | + And I should not see "Release 0.4" in issues | ||
59 | + | ||
60 | + @javascript | ||
61 | + Scenario: I clear search | ||
62 | + Given I click link "All" | ||
63 | + And I fill in issue search with "Something" | ||
64 | + And I fill in issue search with "" | ||
65 | + Then I should see "Release 0.4" in issues | ||
66 | + And I should see "Release 0.3" in issues |
@@ -0,0 +1,21 @@ | @@ -0,0 +1,21 @@ | ||
1 | +include LoginHelpers | ||
2 | + | ||
3 | +Given /^I signin as a user$/ do | ||
4 | + login_as :user | ||
5 | +end | ||
6 | + | ||
7 | +When /^I click link "(.*?)"$/ do |link| | ||
8 | + click_link link | ||
9 | +end | ||
10 | + | ||
11 | +When /^I click button "(.*?)"$/ do |button| | ||
12 | + click_button button | ||
13 | +end | ||
14 | + | ||
15 | +When /^I fill in "(.*?)" with "(.*?)"$/ do |field, value| | ||
16 | + fill_in field, :with => value | ||
17 | +end | ||
18 | + | ||
19 | +Given /^show me page$/ do | ||
20 | + save_and_open_page | ||
21 | +end |
features/step_definitions/dashboard_steps.rb
1 | -Given /^I visit dashboard page$/ do | ||
2 | - visit dashboard_path | ||
3 | -end | ||
4 | - | ||
5 | Then /^I should see "(.*?)" link$/ do |arg1| | 1 | Then /^I should see "(.*?)" link$/ do |arg1| |
6 | page.should have_link(arg1) | 2 | page.should have_link(arg1) |
7 | end | 3 | end |
@@ -51,10 +47,10 @@ Then /^I click "(.*?)" link$/ do |arg1| | @@ -51,10 +47,10 @@ Then /^I click "(.*?)" link$/ do |arg1| | ||
51 | end | 47 | end |
52 | 48 | ||
53 | Then /^I see prefilled new Merge Request page$/ do | 49 | Then /^I see prefilled new Merge Request page$/ do |
54 | - current_path.should == new_project_merge_request_path(@project) | ||
55 | - find("#merge_request_source_branch").value.should == "new_design" | ||
56 | - find("#merge_request_target_branch").value.should == "master" | ||
57 | - find("#merge_request_title").value.should == "New Design" | 50 | + current_path.should == new_project_merge_request_path(@project) |
51 | + find("#merge_request_source_branch").value.should == "new_design" | ||
52 | + find("#merge_request_target_branch").value.should == "master" | ||
53 | + find("#merge_request_title").value.should == "New Design" | ||
58 | end | 54 | end |
59 | 55 | ||
60 | Given /^I visit dashboard search page$/ do | 56 | Given /^I visit dashboard search page$/ do |
@@ -66,10 +62,6 @@ Given /^I search for "(.*?)"$/ do |arg1| | @@ -66,10 +62,6 @@ Given /^I search for "(.*?)"$/ do |arg1| | ||
66 | click_button "Search" | 62 | click_button "Search" |
67 | end | 63 | end |
68 | 64 | ||
69 | -Given /^I visit dashboard issues page$/ do | ||
70 | - visit dashboard_issues_path | ||
71 | -end | ||
72 | - | ||
73 | Then /^I should see issues assigned to me$/ do | 65 | Then /^I should see issues assigned to me$/ do |
74 | issues = @user.issues | 66 | issues = @user.issues |
75 | issues.each do |issue| | 67 | issues.each do |issue| |
@@ -78,10 +70,6 @@ Then /^I should see issues assigned to me$/ do | @@ -78,10 +70,6 @@ Then /^I should see issues assigned to me$/ do | ||
78 | end | 70 | end |
79 | end | 71 | end |
80 | 72 | ||
81 | -Given /^I visit dashboard merge requests page$/ do | ||
82 | - visit dashboard_merge_requests_path | ||
83 | -end | ||
84 | - | ||
85 | Then /^I should see my merge requests$/ do | 73 | Then /^I should see my merge requests$/ do |
86 | merge_requests = @user.merge_requests | 74 | merge_requests = @user.merge_requests |
87 | merge_requests.each do |mr| | 75 | merge_requests.each do |mr| |
features/step_definitions/profile/profile_steps.rb
1 | -Given /^I visit profile page$/ do | ||
2 | - visit profile_path | ||
3 | -end | ||
4 | - | ||
5 | Then /^I should see my profile info$/ do | 1 | Then /^I should see my profile info$/ do |
6 | page.should have_content "Profile" | 2 | page.should have_content "Profile" |
7 | page.should have_content @user.name | 3 | page.should have_content @user.name |
8 | page.should have_content @user.email | 4 | page.should have_content @user.email |
9 | end | 5 | end |
10 | 6 | ||
11 | -Given /^I visit profile password page$/ do | ||
12 | - visit profile_password_path | ||
13 | -end | ||
14 | - | ||
15 | Then /^I change my password$/ do | 7 | Then /^I change my password$/ do |
16 | fill_in "user_password", :with => "222333" | 8 | fill_in "user_password", :with => "222333" |
17 | fill_in "user_password_confirmation", :with => "222333" | 9 | fill_in "user_password_confirmation", :with => "222333" |
@@ -22,10 +14,6 @@ Then /^I should be redirected to sign in page$/ do | @@ -22,10 +14,6 @@ Then /^I should be redirected to sign in page$/ do | ||
22 | current_path.should == new_user_session_path | 14 | current_path.should == new_user_session_path |
23 | end | 15 | end |
24 | 16 | ||
25 | -Given /^I visit profile token page$/ do | ||
26 | - visit profile_token_path | ||
27 | -end | ||
28 | - | ||
29 | Then /^I reset my token$/ do | 17 | Then /^I reset my token$/ do |
30 | @old_token = @user.private_token | 18 | @old_token = @user.private_token |
31 | click_button "Reset" | 19 | click_button "Reset" |
features/step_definitions/project/browse_code_steps.rb
1 | -Given /^I visit project source page$/ do | ||
2 | - visit tree_project_ref_path(@project, @project.root_ref) | ||
3 | -end | ||
4 | - | ||
5 | Then /^I should see files from repository$/ do | 1 | Then /^I should see files from repository$/ do |
6 | page.should have_content("app") | 2 | page.should have_content("app") |
7 | page.should have_content("History") | 3 | page.should have_content("History") |
8 | page.should have_content("Gemfile") | 4 | page.should have_content("Gemfile") |
9 | end | 5 | end |
10 | 6 | ||
11 | -Given /^I visit project source page for "(.*?)"$/ do |arg1| | ||
12 | - visit tree_project_ref_path(@project, arg1) | ||
13 | -end | ||
14 | - | ||
15 | Then /^I should see files from repository for "(.*?)"$/ do |arg1| | 7 | Then /^I should see files from repository for "(.*?)"$/ do |arg1| |
16 | current_path.should == tree_project_ref_path(@project, arg1) | 8 | current_path.should == tree_project_ref_path(@project, arg1) |
17 | page.should have_content("app") | 9 | page.should have_content("app") |
@@ -31,10 +23,6 @@ Given /^I click on raw button$/ do | @@ -31,10 +23,6 @@ Given /^I click on raw button$/ do | ||
31 | click_link "raw" | 23 | click_link "raw" |
32 | end | 24 | end |
33 | 25 | ||
34 | -Given /^I visit blob file from repo$/ do | ||
35 | - visit tree_project_ref_path(@project, ValidCommit::ID, :path => ValidCommit::BLOB_FILE_PATH) | ||
36 | -end | ||
37 | - | ||
38 | Then /^I should see raw file content$/ do | 26 | Then /^I should see raw file content$/ do |
39 | page.source.should == ValidCommit::BLOB_FILE | 27 | page.source.should == ValidCommit::BLOB_FILE |
40 | end | 28 | end |
features/step_definitions/project/project_commits_steps.rb
1 | -Given /^I visit project commits page$/ do | ||
2 | - visit project_commits_path(@project) | ||
3 | -end | ||
4 | - | ||
5 | Then /^I see project commits$/ do | 1 | Then /^I see project commits$/ do |
6 | current_path.should == project_commits_path(@project) | 2 | current_path.should == project_commits_path(@project) |
7 | 3 | ||
@@ -23,19 +19,11 @@ Then /^I see commits atom feed$/ do | @@ -23,19 +19,11 @@ Then /^I see commits atom feed$/ do | ||
23 | page.body.should have_selector("entry summary", :text => commit.description) | 19 | page.body.should have_selector("entry summary", :text => commit.description) |
24 | end | 20 | end |
25 | 21 | ||
26 | -Given /^I click on commit link$/ do | ||
27 | - visit project_commit_path(@project, ValidCommit::ID) | ||
28 | -end | ||
29 | - | ||
30 | Then /^I see commit info$/ do | 22 | Then /^I see commit info$/ do |
31 | page.should have_content ValidCommit::MESSAGE | 23 | page.should have_content ValidCommit::MESSAGE |
32 | page.should have_content "Showing 1 changed file" | 24 | page.should have_content "Showing 1 changed file" |
33 | end | 25 | end |
34 | 26 | ||
35 | -Given /^I visit compare refs page$/ do | ||
36 | - visit compare_project_commits_path(@project) | ||
37 | -end | ||
38 | - | ||
39 | Given /^I fill compare fields with refs$/ do | 27 | Given /^I fill compare fields with refs$/ do |
40 | fill_in "from", :with => "master" | 28 | fill_in "from", :with => "master" |
41 | fill_in "to", :with => "stable" | 29 | fill_in "to", :with => "stable" |
@@ -48,18 +36,6 @@ Given /^I see compared refs$/ do | @@ -48,18 +36,6 @@ Given /^I see compared refs$/ do | ||
48 | page.should have_content "Showing 73 changed files" | 36 | page.should have_content "Showing 73 changed files" |
49 | end | 37 | end |
50 | 38 | ||
51 | -Given /^I visit project branches page$/ do | ||
52 | - visit branches_project_repository_path(@project) | ||
53 | -end | ||
54 | - | ||
55 | -Given /^I visit project commit page$/ do | ||
56 | - visit project_commit_path(@project, ValidCommit::ID) | ||
57 | -end | ||
58 | - | ||
59 | -Given /^I visit project tags page$/ do | ||
60 | - visit tags_project_repository_path(@project) | ||
61 | -end | ||
62 | - | ||
63 | Then /^I should see "(.*?)" recent branches list$/ do |arg1| | 39 | Then /^I should see "(.*?)" recent branches list$/ do |arg1| |
64 | page.should have_content("Branches") | 40 | page.should have_content("Branches") |
65 | page.should have_content("master") | 41 | page.should have_content("master") |
@@ -76,7 +52,7 @@ Then /^I should see "(.*?)" all tags list$/ do |arg1| | @@ -76,7 +52,7 @@ Then /^I should see "(.*?)" all tags list$/ do |arg1| | ||
76 | end | 52 | end |
77 | 53 | ||
78 | Then /^I should see "(.*?)" protected branches list$/ do |arg1| | 54 | Then /^I should see "(.*?)" protected branches list$/ do |arg1| |
79 | - within "table" do | 55 | + within "table" do |
80 | page.should have_content "stable" | 56 | page.should have_content "stable" |
81 | page.should_not have_content "master" | 57 | page.should_not have_content "master" |
82 | end | 58 | end |
features/step_definitions/project/project_issues_steps.rb
@@ -8,16 +8,12 @@ Given /^project "(.*?)" have "(.*?)" closed issue$/ do |arg1, arg2| | @@ -8,16 +8,12 @@ Given /^project "(.*?)" have "(.*?)" closed issue$/ do |arg1, arg2| | ||
8 | Factory.create(:issue, :title => arg2, :project => project, :author => project.users.first, :closed => true) | 8 | Factory.create(:issue, :title => arg2, :project => project, :author => project.users.first, :closed => true) |
9 | end | 9 | end |
10 | 10 | ||
11 | -Given /^I visit project "(.*?)" issues page$/ do |arg1| | ||
12 | - visit project_issues_path(Project.find_by_name(arg1)) | ||
13 | -end | ||
14 | - | ||
15 | Given /^I should see "(.*?)" in issues$/ do |arg1| | 11 | Given /^I should see "(.*?)" in issues$/ do |arg1| |
16 | - page.should have_content arg1 | 12 | + page.should have_content arg1 |
17 | end | 13 | end |
18 | 14 | ||
19 | Given /^I should not see "(.*?)" in issues$/ do |arg1| | 15 | Given /^I should not see "(.*?)" in issues$/ do |arg1| |
20 | - page.should_not have_content arg1 | 16 | + page.should_not have_content arg1 |
21 | end | 17 | end |
22 | 18 | ||
23 | Then /^I should see issue "(.*?)"$/ do |arg1| | 19 | Then /^I should see issue "(.*?)"$/ do |arg1| |
@@ -27,11 +23,6 @@ Then /^I should see issue "(.*?)"$/ do |arg1| | @@ -27,11 +23,6 @@ Then /^I should see issue "(.*?)"$/ do |arg1| | ||
27 | page.should have_content issue.project.name | 23 | page.should have_content issue.project.name |
28 | end | 24 | end |
29 | 25 | ||
30 | -Given /^I visit issue page "(.*?)"$/ do |arg1| | ||
31 | - issue = Issue.find_by_title(arg1) | ||
32 | - visit project_issue_path(issue.project, issue) | ||
33 | -end | ||
34 | - | ||
35 | Given /^I submit new issue "(.*?)"$/ do |arg1| | 26 | Given /^I submit new issue "(.*?)"$/ do |arg1| |
36 | fill_in "issue_title", with: arg1 | 27 | fill_in "issue_title", with: arg1 |
37 | click_button "Submit new issue" | 28 | click_button "Submit new issue" |
@@ -51,7 +42,16 @@ Given /^I visit project "(.*?)" labels page$/ do |arg1| | @@ -51,7 +42,16 @@ Given /^I visit project "(.*?)" labels page$/ do |arg1| | ||
51 | end | 42 | end |
52 | 43 | ||
53 | Then /^I should see label "(.*?)"$/ do |arg1| | 44 | Then /^I should see label "(.*?)"$/ do |arg1| |
54 | - within ".labels-table" do | 45 | + within ".labels-table" do |
55 | page.should have_content arg1 | 46 | page.should have_content arg1 |
56 | end | 47 | end |
57 | end | 48 | end |
49 | + | ||
50 | +Given /^I fill in issue search with "(.*?)"$/ do |arg1| | ||
51 | + # Because fill_in, with: "" triggers nothing | ||
52 | + # we need to trigger a keyup event | ||
53 | + if arg1 == '' | ||
54 | + page.execute_script("$('.issue_search').val('').keyup();"); | ||
55 | + end | ||
56 | + fill_in 'issue_search', with: arg1 | ||
57 | +end |
features/step_definitions/project/project_merge_requests_steps.rb
@@ -8,21 +8,17 @@ Given /^project "(.*?)" have "(.*?)" closed merge request$/ do |arg1, arg2| | @@ -8,21 +8,17 @@ Given /^project "(.*?)" have "(.*?)" closed merge request$/ do |arg1, arg2| | ||
8 | Factory.create(:merge_request, :title => arg2, :project => project, :author => project.users.first, :closed => true) | 8 | Factory.create(:merge_request, :title => arg2, :project => project, :author => project.users.first, :closed => true) |
9 | end | 9 | end |
10 | 10 | ||
11 | -Given /^I visit project "(.*?)" merge requests page$/ do |arg1| | ||
12 | - visit project_merge_requests_path(Project.find_by_name(arg1)) | ||
13 | -end | ||
14 | - | ||
15 | Then /^I should see "(.*?)" in merge requests$/ do |arg1| | 11 | Then /^I should see "(.*?)" in merge requests$/ do |arg1| |
16 | - page.should have_content arg1 | 12 | + page.should have_content arg1 |
17 | end | 13 | end |
18 | 14 | ||
19 | Then /^I should not see "(.*?)" in merge requests$/ do |arg1| | 15 | Then /^I should not see "(.*?)" in merge requests$/ do |arg1| |
20 | - page.should_not have_content arg1 | 16 | + page.should_not have_content arg1 |
21 | end | 17 | end |
22 | 18 | ||
23 | Then /^I should see merge request "(.*?)"$/ do |arg1| | 19 | Then /^I should see merge request "(.*?)"$/ do |arg1| |
24 | merge_request = MergeRequest.find_by_title(arg1) | 20 | merge_request = MergeRequest.find_by_title(arg1) |
25 | - page.should have_content(merge_request.title[0..10]) | 21 | + page.should have_content(merge_request.title[0..10]) |
26 | page.should have_content(merge_request.target_branch) | 22 | page.should have_content(merge_request.target_branch) |
27 | page.should have_content(merge_request.source_branch) | 23 | page.should have_content(merge_request.source_branch) |
28 | end | 24 | end |
@@ -34,11 +30,6 @@ Given /^I submit new merge request "(.*?)"$/ do |arg1| | @@ -34,11 +30,6 @@ Given /^I submit new merge request "(.*?)"$/ do |arg1| | ||
34 | click_button "Save" | 30 | click_button "Save" |
35 | end | 31 | end |
36 | 32 | ||
37 | -Given /^I visit merge request page "(.*?)"$/ do |arg1| | ||
38 | - mr = MergeRequest.find_by_title(arg1) | ||
39 | - visit project_merge_request_path(mr.project, mr) | ||
40 | -end | ||
41 | - | ||
42 | Then /^I should see closed merge request "(.*?)"$/ do |arg1| | 33 | Then /^I should see closed merge request "(.*?)"$/ do |arg1| |
43 | mr = MergeRequest.find_by_title(arg1) | 34 | mr = MergeRequest.find_by_title(arg1) |
44 | mr.closed.should be_true | 35 | mr.closed.should be_true |
features/step_definitions/project/project_milestones_steps.rb
@@ -12,11 +12,6 @@ Given /^project "(.*?)" has milestone "(.*?)"$/ do |arg1, arg2| | @@ -12,11 +12,6 @@ Given /^project "(.*?)" has milestone "(.*?)"$/ do |arg1, arg2| | ||
12 | end | 12 | end |
13 | end | 13 | end |
14 | 14 | ||
15 | -Given /^I visit project "(.*?)" milestones page$/ do |arg1| | ||
16 | - @project = Project.find_by_name(arg1) | ||
17 | - visit project_milestones_path(@project) | ||
18 | -end | ||
19 | - | ||
20 | Then /^I should see active milestones$/ do | 15 | Then /^I should see active milestones$/ do |
21 | milestone = @project.milestones.first | 16 | milestone = @project.milestones.first |
22 | page.should have_content(milestone.title[0..10]) | 17 | page.should have_content(milestone.title[0..10]) |
features/step_definitions/project/project_team_steps.rb
@@ -8,10 +8,6 @@ Given /^"(.*?)" is "(.*?)" developer$/ do |arg1, arg2| | @@ -8,10 +8,6 @@ Given /^"(.*?)" is "(.*?)" developer$/ do |arg1, arg2| | ||
8 | project.add_access(user, :write) | 8 | project.add_access(user, :write) |
9 | end | 9 | end |
10 | 10 | ||
11 | -Given /^I visit project "(.*?)" team page$/ do |arg1| | ||
12 | - visit team_project_path(Project.find_by_name(arg1)) | ||
13 | -end | ||
14 | - | ||
15 | Then /^I should be able to see myself in team$/ do | 11 | Then /^I should be able to see myself in team$/ do |
16 | page.should have_content(@user.name) | 12 | page.should have_content(@user.name) |
17 | page.should have_content(@user.email) | 13 | page.should have_content(@user.email) |
@@ -23,13 +19,9 @@ Then /^I should see "(.*?)" in team list$/ do |arg1| | @@ -23,13 +19,9 @@ Then /^I should see "(.*?)" in team list$/ do |arg1| | ||
23 | page.should have_content(user.email) | 19 | page.should have_content(user.email) |
24 | end | 20 | end |
25 | 21 | ||
26 | -Given /^I click link "(.*?)"$/ do |arg1| | ||
27 | - click_link arg1 | ||
28 | -end | ||
29 | - | ||
30 | Given /^I select "(.*?)" as "(.*?)"$/ do |arg1, arg2| | 22 | Given /^I select "(.*?)" as "(.*?)"$/ do |arg1, arg2| |
31 | user = User.find_by_name(arg1) | 23 | user = User.find_by_name(arg1) |
32 | - within "#new_team_member" do | 24 | + within "#new_team_member" do |
33 | select user.name, :from => "team_member_user_id" | 25 | select user.name, :from => "team_member_user_id" |
34 | select arg2, :from => "team_member_project_access" | 26 | select arg2, :from => "team_member_project_access" |
35 | end | 27 | end |
@@ -44,7 +36,7 @@ end | @@ -44,7 +36,7 @@ end | ||
44 | 36 | ||
45 | Given /^I change "(.*?)" role to "(.*?)"$/ do |arg1, arg2| | 37 | Given /^I change "(.*?)" role to "(.*?)"$/ do |arg1, arg2| |
46 | user = User.find_by_name(arg1) | 38 | user = User.find_by_name(arg1) |
47 | - within ".user_#{user.id}" do | 39 | + within ".user_#{user.id}" do |
48 | select arg2, :from => "team_member_project_access" | 40 | select arg2, :from => "team_member_project_access" |
49 | end | 41 | end |
50 | end | 42 | end |
features/step_definitions/project/project_wiki_steps.rb
1 | -Given /^I visit project wiki page$/ do | ||
2 | - visit project_wiki_path(@project, :index) | ||
3 | -end | ||
4 | - | ||
5 | Given /^I create Wiki page$/ do | 1 | Given /^I create Wiki page$/ do |
6 | fill_in "Title", :with => 'Test title' | 2 | fill_in "Title", :with => 'Test title' |
7 | fill_in "Content", :with => '[link test](test)' | 3 | fill_in "Content", :with => '[link test](test)' |
features/step_definitions/project/projects_steps.rb
1 | -include LoginHelpers | ||
2 | - | ||
3 | -Given /^I signin as a user$/ do | ||
4 | - login_as :user | ||
5 | -end | ||
6 | - | ||
7 | When /^I visit new project page$/ do | 1 | When /^I visit new project page$/ do |
8 | visit new_project_path | 2 | visit new_project_path |
9 | end | 3 | end |
@@ -65,10 +59,6 @@ Given /^I visit project "(.*?)" network page$/ do |arg1| | @@ -65,10 +59,6 @@ Given /^I visit project "(.*?)" network page$/ do |arg1| | ||
65 | visit graph_project_path(project) | 59 | visit graph_project_path(project) |
66 | end | 60 | end |
67 | 61 | ||
68 | -Given /^show me page$/ do | ||
69 | - save_and_open_page | ||
70 | -end | ||
71 | - | ||
72 | Given /^page should have network graph$/ do | 62 | Given /^page should have network graph$/ do |
73 | page.should have_content "Project Network Graph" | 63 | page.should have_content "Project Network Graph" |
74 | within ".graph" do | 64 | within ".graph" do |
@@ -0,0 +1,91 @@ | @@ -0,0 +1,91 @@ | ||
1 | +Given /^I visit project "(.*?)" issues page$/ do |arg1| | ||
2 | + visit project_issues_path(Project.find_by_name(arg1)) | ||
3 | +end | ||
4 | + | ||
5 | +Given /^I visit issue page "(.*?)"$/ do |arg1| | ||
6 | + issue = Issue.find_by_title(arg1) | ||
7 | + visit project_issue_path(issue.project, issue) | ||
8 | +end | ||
9 | + | ||
10 | +Given /^I visit project "(.*?)" merge requests page$/ do |arg1| | ||
11 | + visit project_merge_requests_path(Project.find_by_name(arg1)) | ||
12 | +end | ||
13 | + | ||
14 | +Given /^I visit merge request page "(.*?)"$/ do |arg1| | ||
15 | + mr = MergeRequest.find_by_title(arg1) | ||
16 | + visit project_merge_request_path(mr.project, mr) | ||
17 | +end | ||
18 | + | ||
19 | +Given /^I visit project "(.*?)" milestones page$/ do |arg1| | ||
20 | + @project = Project.find_by_name(arg1) | ||
21 | + visit project_milestones_path(@project) | ||
22 | +end | ||
23 | + | ||
24 | +Given /^I visit project commits page$/ do | ||
25 | + visit project_commits_path(@project) | ||
26 | +end | ||
27 | + | ||
28 | +Given /^I visit compare refs page$/ do | ||
29 | + visit compare_project_commits_path(@project) | ||
30 | +end | ||
31 | + | ||
32 | +Given /^I visit project branches page$/ do | ||
33 | + visit branches_project_repository_path(@project) | ||
34 | +end | ||
35 | + | ||
36 | +Given /^I visit project commit page$/ do | ||
37 | + visit project_commit_path(@project, ValidCommit::ID) | ||
38 | +end | ||
39 | + | ||
40 | +Given /^I visit project tags page$/ do | ||
41 | + visit tags_project_repository_path(@project) | ||
42 | +end | ||
43 | + | ||
44 | +Given /^I click on commit link$/ do | ||
45 | + visit project_commit_path(@project, ValidCommit::ID) | ||
46 | +end | ||
47 | + | ||
48 | +Given /^I visit project source page$/ do | ||
49 | + visit tree_project_ref_path(@project, @project.root_ref) | ||
50 | +end | ||
51 | + | ||
52 | +Given /^I visit project source page for "(.*?)"$/ do |arg1| | ||
53 | + visit tree_project_ref_path(@project, arg1) | ||
54 | +end | ||
55 | + | ||
56 | +Given /^I visit blob file from repo$/ do | ||
57 | + visit tree_project_ref_path(@project, ValidCommit::ID, :path => ValidCommit::BLOB_FILE_PATH) | ||
58 | +end | ||
59 | + | ||
60 | +Given /^I visit project "(.*?)" team page$/ do |arg1| | ||
61 | + visit team_project_path(Project.find_by_name(arg1)) | ||
62 | +end | ||
63 | + | ||
64 | +Given /^I visit project wiki page$/ do | ||
65 | + visit project_wiki_path(@project, :index) | ||
66 | +end | ||
67 | + | ||
68 | +Given /^I visit profile page$/ do | ||
69 | + visit profile_path | ||
70 | +end | ||
71 | + | ||
72 | +Given /^I visit profile token page$/ do | ||
73 | + visit profile_token_path | ||
74 | +end | ||
75 | + | ||
76 | +Given /^I visit profile password page$/ do | ||
77 | + visit profile_password_path | ||
78 | +end | ||
79 | + | ||
80 | +Given /^I visit dashboard page$/ do | ||
81 | + visit dashboard_path | ||
82 | +end | ||
83 | + | ||
84 | +Given /^I visit dashboard issues page$/ do | ||
85 | + visit dashboard_issues_path | ||
86 | +end | ||
87 | + | ||
88 | +Given /^I visit dashboard merge requests page$/ do | ||
89 | + visit dashboard_merge_requests_path | ||
90 | +end | ||
91 | + |
lib/gitlab/backend/gitolite.rb
@@ -170,7 +170,7 @@ module Gitlab | @@ -170,7 +170,7 @@ module Gitlab | ||
170 | def push | 170 | def push |
171 | Dir.chdir(File.join(@local_dir, "gitolite")) | 171 | Dir.chdir(File.join(@local_dir, "gitolite")) |
172 | `git add -A` | 172 | `git add -A` |
173 | - `git commit -am "Gitlab"` | 173 | + `git commit -am "GitLab"` |
174 | `git push` | 174 | `git push` |
175 | Dir.chdir(Rails.root) | 175 | Dir.chdir(Rails.root) |
176 | 176 |
lib/gitlab/markdown.rb
1 | module Gitlab | 1 | module Gitlab |
2 | - # Custom parser for Gitlab-flavored Markdown | 2 | + # Custom parser for GitLab-flavored Markdown |
3 | # | 3 | # |
4 | # It replaces references in the text with links to the appropriate items in | 4 | # It replaces references in the text with links to the appropriate items in |
5 | - # Gitlab. | 5 | + # GitLab. |
6 | # | 6 | # |
7 | # Supported reference formats are: | 7 | # Supported reference formats are: |
8 | # * @foo for team members | 8 | # * @foo for team members |
lib/hooks/post-receive
1 | #!/usr/bin/env bash | 1 | #!/usr/bin/env bash |
2 | 2 | ||
3 | -# This file was placed here by Gitlab. It makes sure that your pushed commits | 3 | +# This file was placed here by GitLab. It makes sure that your pushed commits |
4 | # will be processed properly. | 4 | # will be processed properly. |
5 | 5 | ||
6 | while read oldrev newrev ref | 6 | while read oldrev newrev ref |
lib/tasks/gitlab/write_hook.rake
1 | namespace :gitlab do | 1 | namespace :gitlab do |
2 | namespace :gitolite do | 2 | namespace :gitolite do |
3 | - desc "GITLAB | Write GITLAB hook for gitolite" | 3 | + desc "GITLAB | Write GitLab hook for gitolite" |
4 | task :write_hooks => :environment do | 4 | task :write_hooks => :environment do |
5 | gitolite_hooks_path = File.join(Gitlab.config.git_hooks_path, "common") | 5 | gitolite_hooks_path = File.join(Gitlab.config.git_hooks_path, "common") |
6 | gitlab_hooks_path = Rails.root.join("lib", "hooks") | 6 | gitlab_hooks_path = Rails.root.join("lib", "hooks") |
spec/factories_spec.rb
1 | require 'spec_helper' | 1 | require 'spec_helper' |
2 | 2 | ||
3 | -describe "Factories" do | ||
4 | - describe 'User' do | ||
5 | - it "builds a valid instance" do | ||
6 | - build(:user).should be_valid | ||
7 | - end | ||
8 | - | ||
9 | - it "builds a valid admin instance" do | ||
10 | - build(:admin).should be_valid | ||
11 | - end | ||
12 | - end | ||
13 | - | ||
14 | - describe 'Project' do | ||
15 | - it "builds a valid instance" do | ||
16 | - build(:project).should be_valid | ||
17 | - end | ||
18 | - end | ||
19 | - | ||
20 | - describe 'Issue' do | ||
21 | - it "builds a valid instance" do | ||
22 | - build(:issue).should be_valid | ||
23 | - end | ||
24 | - | ||
25 | - it "builds a valid closed instance" do | ||
26 | - build(:closed_issue).should be_valid | ||
27 | - end | ||
28 | - end | ||
29 | - | ||
30 | - describe 'MergeRequest' do | ||
31 | - it "builds a valid instance" do | ||
32 | - build(:merge_request).should be_valid | ||
33 | - end | ||
34 | - end | ||
35 | - | ||
36 | - describe 'Note' do | ||
37 | - it "builds a valid instance" do | ||
38 | - build(:note).should be_valid | ||
39 | - end | ||
40 | - end | ||
41 | - | ||
42 | - describe 'Event' do | ||
43 | - it "builds a valid instance" do | ||
44 | - build(:event).should be_valid | ||
45 | - end | ||
46 | - end | ||
47 | - | ||
48 | - describe 'Key' do | ||
49 | - it "builds a valid instance" do | ||
50 | - build(:key).should be_valid | ||
51 | - end | ||
52 | - | ||
53 | - it "builds a valid deploy key instance" do | ||
54 | - build(:deploy_key).should be_valid | ||
55 | - end | ||
56 | - | ||
57 | - it "builds a valid personal key instance" do | ||
58 | - build(:personal_key).should be_valid | ||
59 | - end | ||
60 | - end | ||
61 | - | ||
62 | - describe 'Milestone' do | ||
63 | - it "builds a valid instance" do | ||
64 | - build(:milestone).should be_valid | ||
65 | - end | ||
66 | - end | ||
67 | - | ||
68 | - describe 'SystemHook' do | ||
69 | - it "builds a valid instance" do | ||
70 | - build(:system_hook).should be_valid | ||
71 | - end | ||
72 | - end | ||
73 | - | ||
74 | - describe 'ProjectHook' do | ||
75 | - it "builds a valid instance" do | ||
76 | - build(:project_hook).should be_valid | ||
77 | - end | ||
78 | - end | ||
79 | - | ||
80 | - describe 'Wiki' do | ||
81 | - it "builds a valid instance" do | ||
82 | - build(:wiki).should be_valid | ||
83 | - end | ||
84 | - end | ||
85 | - | ||
86 | - describe 'Snippet' do | ||
87 | - it "builds a valid instance" do | ||
88 | - build(:snippet).should be_valid | 3 | +FactoryGirl.factories.map(&:name).each do |factory_name| |
4 | + describe "#{factory_name} factory" do | ||
5 | + it 'should be valid' do | ||
6 | + build(factory_name).should be_valid | ||
89 | end | 7 | end |
90 | end | 8 | end |
91 | end | 9 | end |
spec/mailers/notify_spec.rb
@@ -24,7 +24,7 @@ describe Notify do | @@ -24,7 +24,7 @@ describe Notify do | ||
24 | end | 24 | end |
25 | 25 | ||
26 | it 'has the correct subject' do | 26 | it 'has the correct subject' do |
27 | - should have_subject /^gitlab \| Account was created for you$/ | 27 | + should have_subject /^gitlab \| Account was created for you$/i |
28 | end | 28 | end |
29 | 29 | ||
30 | it 'contains the new user\'s login name' do | 30 | it 'contains the new user\'s login name' do |