Commit c635810b8e3d62ea8b39412677bd1257bd91ec83
Committed by
Rafael Martins
1 parent
c11ada20
Exists in
master
and in
29 other branches
Some fixes on redesigned Catalog
(ActionItem2111)
Showing
17 changed files
with
193 additions
and
329 deletions
Show diff stats
app/views/catalog/_index.rhtml
app/views/catalog/index.rhtml
@@ -37,26 +37,22 @@ | @@ -37,26 +37,22 @@ | ||
37 | <% if product.description %> | 37 | <% if product.description %> |
38 | <li class="product-description expand-box"> | 38 | <li class="product-description expand-box"> |
39 | <span id="product-description-button"><%= _('description') %></span> | 39 | <span id="product-description-button"><%= _('description') %></span> |
40 | - <div> | ||
41 | - <div class="arrow"></div> | ||
42 | - <div class="content" id="product-description"><%= txt2html(product.description || '') %></div> | ||
43 | - </div> | 40 | + <div class="arrow"></div> |
41 | + <div class="content" id="product-description"><%= txt2html(product.description || '') %></div> | ||
44 | </li> | 42 | </li> |
45 | <% end %> | 43 | <% end %> |
46 | 44 | ||
47 | <% if product.is_open_price? %> | 45 | <% if product.is_open_price? %> |
48 | <li class="product-price-composition expand-box"> | 46 | <li class="product-price-composition expand-box"> |
49 | <span id="product-price-composition-button"><%= _('price composition') %></span> | 47 | <span id="product-price-composition-button"><%= _('price composition') %></span> |
50 | - <div> | ||
51 | - <div class="arrow"></div> | ||
52 | - <div class="content" id="product-price-composition"> | ||
53 | - <% product.inputs.each do |i| %> | ||
54 | - <div class="search-product-input-dots-to-price"> | ||
55 | - <div class="search-product-input-name"><%= i.product_category.name %></div> | ||
56 | - <%= price_span i.price_per_unit * i.amount_used, :class => 'search-product-input-price' %> | ||
57 | - </div> | ||
58 | - <% end %> | ||
59 | - </div> | 48 | + <div class="arrow"></div> |
49 | + <div class="content" id="product-price-composition"> | ||
50 | + <% product.inputs.each do |i| %> | ||
51 | + <div class="search-product-input-dots-to-price"> | ||
52 | + <div class="search-product-input-name"><%= i.product_category.name %></div> | ||
53 | + <%= price_span i.price_per_unit * i.amount_used, :class => 'search-product-input-price' %> | ||
54 | + </div> | ||
55 | + <% end %> | ||
60 | </div> | 56 | </div> |
61 | </li> | 57 | </li> |
62 | <% end %> | 58 | <% end %> |
@@ -64,13 +60,11 @@ | @@ -64,13 +60,11 @@ | ||
64 | <% if product.any_inputs_details? %> | 60 | <% if product.any_inputs_details? %> |
65 | <li class="product-inputs expand-box"> | 61 | <li class="product-inputs expand-box"> |
66 | <span id="inputs-button"><%= _('inputs and raw materials') %></span> | 62 | <span id="inputs-button"><%= _('inputs and raw materials') %></span> |
67 | - <div> | ||
68 | - <div class="arrow"></div> | ||
69 | - <div class="content" id="inputs-description"> | ||
70 | - <% product.inputs.each do |i| %> | ||
71 | - <div><%= "#{i.amount_used} #{i.unit.singular} #{_('of')} #{i.product_category.name}" if i.has_all_price_details? %></div> | ||
72 | - <% end %> | ||
73 | - </div> | 63 | + <div class="arrow"></div> |
64 | + <div class="content" id="inputs-description"> | ||
65 | + <% product.inputs.each do |i| %> | ||
66 | + <div><%= "#{i.amount_used} #{i.unit.singular} #{_('of')} #{i.product_category.name}" if i.has_all_price_details? %></div> | ||
67 | + <% end %> | ||
74 | </div> | 68 | </div> |
75 | </li> | 69 | </li> |
76 | <% end %> | 70 | <% end %> |
@@ -81,10 +75,6 @@ | @@ -81,10 +75,6 @@ | ||
81 | <div><%= render :partial => 'shared/product/qualifiers', :locals => {:product => product} %></div> | 75 | <div><%= render :partial => 'shared/product/qualifiers', :locals => {:product => product} %></div> |
82 | <% end %> | 76 | <% end %> |
83 | 77 | ||
84 | - <li class="product-category"> | ||
85 | - <%# profile.enabled? ? link_to_product_category(product.product_category) : (product.product_category ? product.product_category.full_name(' → ') : _('Uncategorized product')) %> | ||
86 | - </li> | ||
87 | - | ||
88 | <% extra_content_list.map do |content| %> | 78 | <% extra_content_list.map do |content| %> |
89 | <li><%= content %></li> | 79 | <li><%= content %></li> |
90 | <% end %> | 80 | <% end %> |
@@ -98,4 +88,3 @@ | @@ -98,4 +88,3 @@ | ||
98 | </ul> | 88 | </ul> |
99 | 89 | ||
100 | <%= pagination_links @products, :params => {:controller => :catalog, :action => :index, :profile => profile.identifier} %> | 90 | <%= pagination_links @products, :params => {:controller => :catalog, :action => :index, :profile => profile.identifier} %> |
101 | - |
app/views/content_viewer/_enterprise_homepage.rhtml
1 | <%= display_profile_info enterprise_homepage.profile %> | 1 | <%= display_profile_info enterprise_homepage.profile %> |
2 | <div><%= enterprise_homepage.body %></div> | 2 | <div><%= enterprise_homepage.body %></div> |
3 | -<%= render :partial => 'catalog/index' unless enterprise_homepage.profile.environment.enabled?('disable_products_for_enterprises') %> | 3 | +<%= render :file => 'catalog/index' unless enterprise_homepage.profile.environment.enabled?('disable_products_for_enterprises') %> |
app/views/layouts/_javascript.rhtml
1 | -<%= javascript_include_tag :defaults, 'jquery-latest.js', 'jquery.noconflict.js', 'jquery.cycle.all.min.js', 'thickbox.js', 'lightbox', 'jquery-ui-1.8.2.custom.min', 'jquery.scrollTo', 'jquery.form.js', 'jquery.cookie', 'reflection', 'add-and-join', 'jquery.tokeninput', 'report-abuse','colorbox', 'jquery-validation/jquery.validate', :cache => 'cache-general' %> | 1 | +<%= javascript_include_tag :defaults, 'jquery-latest.js', 'jquery.noconflict.js', 'jquery.cycle.all.min.js', 'thickbox.js', 'lightbox', 'jquery-ui-1.8.2.custom.min', 'jquery.scrollTo', 'jquery.form.js', 'jquery.cookie', 'reflection', 'add-and-join', 'jquery.tokeninput', 'report-abuse','colorbox', 'jquery-validation/jquery.validate', 'catalog', :cache => 'cache-general' %> |
2 | + | ||
2 | <% language = FastGettext.locale %> | 3 | <% language = FastGettext.locale %> |
3 | <%= javascript_include_tag 'jquery-validation/localization/messages_'+language, 'jquery-validation/localization/methods_'+language %> | 4 | <%= javascript_include_tag 'jquery-validation/localization/messages_'+language, 'jquery-validation/localization/methods_'+language %> |
features/browse_catalogs.feature
@@ -14,16 +14,16 @@ Feature: browse catalogs | @@ -14,16 +14,16 @@ Feature: browse catalogs | ||
14 | | name | | 14 | | name | |
15 | | categ1 | | 15 | | categ1 | |
16 | | food | | 16 | | food | |
17 | + And I am on /catalog/artebonito | ||
17 | 18 | ||
18 | Scenario: display titles | 19 | Scenario: display titles |
19 | - Given I am on /catalog/artebonito | ||
20 | Then I should see "Associação de Artesanato de Bonito" | 20 | Then I should see "Associação de Artesanato de Bonito" |
21 | And I should see "Products/Services" within "#product-list" | 21 | And I should see "Products/Services" within "#product-list" |
22 | 22 | ||
23 | Scenario: display the simplest possible product | 23 | Scenario: display the simplest possible product |
24 | - Given the following simple products | ||
25 | - | owner | category | | ||
26 | - | artebonito | categ1 | | 24 | + Given the following products |
25 | + | owner | category | | ||
26 | + | artebonito | categ1 | | ||
27 | And I am on /catalog/artebonito | 27 | And I am on /catalog/artebonito |
28 | Then I should see "categ1" within "li.product-link" | 28 | Then I should see "categ1" within "li.product-link" |
29 | And I should see "No image" within "li.product-big" | 29 | And I should see "No image" within "li.product-big" |
@@ -34,8 +34,8 @@ Feature: browse catalogs | @@ -34,8 +34,8 @@ Feature: browse catalogs | ||
34 | And I should not see "price composition" | 34 | And I should not see "price composition" |
35 | 35 | ||
36 | Scenario: display a simple product without price | 36 | Scenario: display a simple product without price |
37 | - Given the following simple products | ||
38 | - | owner | category | name | | 37 | + Given the following products |
38 | + | owner | category | name | | ||
39 | | artebonito | categ1 | Produto1 | | 39 | | artebonito | categ1 | Produto1 | |
40 | And I am on /catalog/artebonito | 40 | And I am on /catalog/artebonito |
41 | Then I should see "Produto1" within "li.product-link" | 41 | Then I should see "Produto1" within "li.product-link" |
@@ -47,8 +47,8 @@ Feature: browse catalogs | @@ -47,8 +47,8 @@ Feature: browse catalogs | ||
47 | And I should not see "price composition" | 47 | And I should not see "price composition" |
48 | 48 | ||
49 | Scenario: display a simple product without details | 49 | Scenario: display a simple product without details |
50 | - Given the following simple products | ||
51 | - | owner | category | name | price | | 50 | + Given the following products |
51 | + | owner | category | name | price | | ||
52 | | artebonito | categ1 | Produto1 | 50.00 | | 52 | | artebonito | categ1 | Produto1 | 50.00 | |
53 | And I am on /catalog/artebonito | 53 | And I am on /catalog/artebonito |
54 | Then I should see "Produto1" within "li.product-link" | 54 | Then I should see "Produto1" within "li.product-link" |
@@ -60,19 +60,17 @@ Feature: browse catalogs | @@ -60,19 +60,17 @@ Feature: browse catalogs | ||
60 | And I should not see "qualifiers" | 60 | And I should not see "qualifiers" |
61 | And I should not see "price composition" | 61 | And I should not see "price composition" |
62 | 62 | ||
63 | -#FIXME: test different units | ||
64 | - | ||
65 | Scenario: product name links to product page | 63 | Scenario: product name links to product page |
66 | - Given the following simple products | ||
67 | - | owner | category | name | price | | 64 | + Given the following products |
65 | + | owner | category | name | price | | ||
68 | | artebonito | categ1 | Produto1 | 50.00 | | 66 | | artebonito | categ1 | Produto1 | 50.00 | |
69 | And I am on /catalog/artebonito | 67 | And I am on /catalog/artebonito |
70 | When I follow "Produto1" within "li.product-link" | 68 | When I follow "Produto1" within "li.product-link" |
71 | Then I should be taken to "Produto1" product page | 69 | Then I should be taken to "Produto1" product page |
72 | 70 | ||
73 | Scenario: display product with custom image | 71 | Scenario: display product with custom image |
74 | - Given the following simple products | ||
75 | - | owner | category | name | price | img | | 72 | + Given the following products |
73 | + | owner | category | name | price | img | | ||
76 | | artebonito | categ1 | Agrotox | 12.34 | agrotox | | 74 | | artebonito | categ1 | Agrotox | 12.34 | agrotox | |
77 | And I am on /catalog/artebonito | 75 | And I am on /catalog/artebonito |
78 | Then I should see "Agrotox" within "li.product-link" | 76 | Then I should see "Agrotox" within "li.product-link" |
@@ -85,16 +83,16 @@ Feature: browse catalogs | @@ -85,16 +83,16 @@ Feature: browse catalogs | ||
85 | And I should not see "price composition" | 83 | And I should not see "price composition" |
86 | 84 | ||
87 | Scenario: image links to product page | 85 | Scenario: image links to product page |
88 | - Given the following simple products | ||
89 | - | owner | category | name | price | img | | 86 | + Given the following products |
87 | + | owner | category | name | price | img | | ||
90 | | artebonito | categ1 | Agrotox | 12.34 | agrotox | | 88 | | artebonito | categ1 | Agrotox | 12.34 | agrotox | |
91 | And I am on /catalog/artebonito | 89 | And I am on /catalog/artebonito |
92 | When I follow "Agrotox" within "#product-image-link" | 90 | When I follow "Agrotox" within "#product-image-link" |
93 | Then I should be taken to "Agrotox" product page | 91 | Then I should be taken to "Agrotox" product page |
94 | 92 | ||
95 | Scenario: display product with discount | 93 | Scenario: display product with discount |
96 | - Given the following simple products | ||
97 | - | owner | category | name | price | discount | img | | 94 | + Given the following products |
95 | + | owner | category | name | price | discount | img | | ||
98 | | artebonito | categ1 | Semterrinha | 99.99 | 12.34 | semterrinha | | 96 | | artebonito | categ1 | Semterrinha | 99.99 | 12.34 | semterrinha | |
99 | And I am on /catalog/artebonito | 97 | And I am on /catalog/artebonito |
100 | Then I should see "Semterrinha" within "li.product-link" | 98 | Then I should see "Semterrinha" within "li.product-link" |
@@ -107,23 +105,22 @@ Feature: browse catalogs | @@ -107,23 +105,22 @@ Feature: browse catalogs | ||
107 | 105 | ||
108 | @selenium | 106 | @selenium |
109 | Scenario: display description button when needed (but not the description) | 107 | Scenario: display description button when needed (but not the description) |
110 | - Given the following simple products | ||
111 | - | owner | category | name | price | description | | ||
112 | - | artebonito | categ1 | Produto2 | 12.34 | A small description for a product that doesn't exist. | | 108 | + Given the following products |
109 | + | owner | category | name | price | description | | ||
110 | + | artebonito | categ1 | Produto2 | 12.34 | A small description for a product that doesn't exist. | | ||
113 | And I am on /catalog/artebonito | 111 | And I am on /catalog/artebonito |
114 | Then I should see "Produto2" within "li.product-link" | 112 | Then I should see "Produto2" within "li.product-link" |
115 | And I should see "12.34" within "span.product-price" | 113 | And I should see "12.34" within "span.product-price" |
116 | And I should see "description" within "#product-description-button" | 114 | And I should see "description" within "#product-description-button" |
117 | And the "product-description-button" should be visible | 115 | And the "product-description-button" should be visible |
118 | -# Doesn't make a lot of sense, but I have to check the text and the visibility separately | ||
119 | And I should see "A small description" within "#product-description" | 116 | And I should see "A small description" within "#product-description" |
120 | And the "product-description" should not be visible | 117 | And the "product-description" should not be visible |
121 | 118 | ||
122 | @selenium | 119 | @selenium |
123 | Scenario: display description when button is clicked | 120 | Scenario: display description when button is clicked |
124 | - Given the following simple products | ||
125 | - | owner | category | name | price | description | | ||
126 | - | artebonito | categ1 | Produto3 | 12.34 | A small description for a product that doesn't exist. | | 121 | + Given the following products |
122 | + | owner | category | name | price | description | | ||
123 | + | artebonito | categ1 | Produto3 | 12.34 | A small description for a product that doesn't exist. | | ||
127 | And I am on /catalog/artebonito | 124 | And I am on /catalog/artebonito |
128 | And I reload and wait for the page | 125 | And I reload and wait for the page |
129 | When I click "product-description-button" | 126 | When I click "product-description-button" |
@@ -131,8 +128,8 @@ Feature: browse catalogs | @@ -131,8 +128,8 @@ Feature: browse catalogs | ||
131 | And the "product-description" should be visible | 128 | And the "product-description" should be visible |
132 | 129 | ||
133 | Scenario: display unavailable product | 130 | Scenario: display unavailable product |
134 | - Given the following simple products | ||
135 | - | owner | category | name | price | available | | 131 | + Given the following products |
132 | + | owner | category | name | price | available | | ||
136 | | artebonito | categ1 | Prod3 | 12.34 | false | | 133 | | artebonito | categ1 | Prod3 | 12.34 | false | |
137 | And I am on /catalog/artebonito | 134 | And I am on /catalog/artebonito |
138 | Then I should see "Prod3" within "li.not-available" | 135 | Then I should see "Prod3" within "li.not-available" |
@@ -148,8 +145,8 @@ Feature: browse catalogs | @@ -148,8 +145,8 @@ Feature: browse catalogs | ||
148 | And the following certifiers | 145 | And the following certifiers |
149 | | name | qualifiers | | 146 | | name | qualifiers | |
150 | | Colivre | Organic | | 147 | | Colivre | Organic | |
151 | - And the following simple products | ||
152 | - | owner | category | name | price | qualifier | | 148 | + And the following products |
149 | + | owner | category | name | price | qualifier | | ||
153 | | artebonito | categ1 | Banana | 0.99 | Organic | | 150 | | artebonito | categ1 | Banana | 0.99 | Organic | |
154 | And I am on /catalog/artebonito | 151 | And I am on /catalog/artebonito |
155 | Then I should see "Banana" within "li.product-link" | 152 | Then I should see "Banana" within "li.product-link" |
@@ -161,9 +158,9 @@ Feature: browse catalogs | @@ -161,9 +158,9 @@ Feature: browse catalogs | ||
161 | #FIXME: this will only be available after AI1413 | 158 | #FIXME: this will only be available after AI1413 |
162 | # @selenium | 159 | # @selenium |
163 | # Scenario: display price composition button (but not inputs) | 160 | # Scenario: display price composition button (but not inputs) |
164 | -# Given the following simple product | ||
165 | -# | owner | category | name | price | | ||
166 | -# | artebonito | food | Bananada | 10.00 | | 161 | +# Given the following product |
162 | +# | owner | category | name | price | | ||
163 | +# | artebonito | food | Bananada | 10.00 | | ||
167 | # And the following input | 164 | # And the following input |
168 | # | product | category | price_per_unit | amount_used | | 165 | # | product | category | price_per_unit | amount_used | |
169 | # | Bananada | food | 0.99 | 5 | | 166 | # | Bananada | food | 0.99 | 5 | |
@@ -180,9 +177,9 @@ Feature: browse catalogs | @@ -180,9 +177,9 @@ Feature: browse catalogs | ||
180 | #FIXME: this will only be available after AI1413 | 177 | #FIXME: this will only be available after AI1413 |
181 | # @selenium | 178 | # @selenium |
182 | # Scenario: display price composition when button is clicked | 179 | # Scenario: display price composition when button is clicked |
183 | -# Given the following simple product | ||
184 | -# | owner | category | name | price | | ||
185 | -# | artebonito | food | Bananada | 10.00 | | 180 | +# Given the following product |
181 | +# | owner | category | name | price | | ||
182 | +# | artebonito | food | Bananada | 10.00 | | ||
186 | # And the following input | 183 | # And the following input |
187 | # | product | category | price_per_unit | amount_used | | 184 | # | product | category | price_per_unit | amount_used | |
188 | # | Bananada | food | 0.99 | 5 | | 185 | # | Bananada | food | 0.99 | 5 | |
@@ -195,14 +192,14 @@ Feature: browse catalogs | @@ -195,14 +192,14 @@ Feature: browse catalogs | ||
195 | 192 | ||
196 | @selenium | 193 | @selenium |
197 | Scenario: display inputs and raw materials button | 194 | Scenario: display inputs and raw materials button |
198 | - Given the following simple product | ||
199 | - | owner | category | name | price | | ||
200 | - | artebonito | food | Vitamina | 17.99 | | 195 | + Given the following product |
196 | + | owner | category | name | price | | ||
197 | + | artebonito | food | Vitamina | 17.99 | | ||
201 | And the following unit | 198 | And the following unit |
202 | | name | plural | | 199 | | name | plural | |
203 | | Liter | Liters | | 200 | | Liter | Liters | |
204 | And the following input | 201 | And the following input |
205 | - | product | category | price_per_unit | amount_used | unit | | 202 | + | product | category | price_per_unit | amount_used | unit | |
206 | | Vitamina | food | 1.45 | 7 | Liter | | 203 | | Vitamina | food | 1.45 | 7 | Liter | |
207 | And I am on /catalog/artebonito | 204 | And I am on /catalog/artebonito |
208 | And I reload and wait for the page | 205 | And I reload and wait for the page |
@@ -215,25 +212,17 @@ Feature: browse catalogs | @@ -215,25 +212,17 @@ Feature: browse catalogs | ||
215 | 212 | ||
216 | @selenium | 213 | @selenium |
217 | Scenario: display inputs and raw materials description | 214 | Scenario: display inputs and raw materials description |
218 | - Given the following simple product | ||
219 | - | owner | category | name | price | | ||
220 | - | artebonito | food | Vitamina | 17.99 | | 215 | + Given the following product |
216 | + | owner | category | name | price | | ||
217 | + | artebonito | food | Vitamina | 17.99 | | ||
221 | And the following unit | 218 | And the following unit |
222 | | name | plural | | 219 | | name | plural | |
223 | | Liter | Liters | | 220 | | Liter | Liters | |
224 | And the following input | 221 | And the following input |
225 | - | product | category | price_per_unit | amount_used | unit | | 222 | + | product | category | price_per_unit | amount_used | unit | |
226 | | Vitamina | food | 1.45 | 7 | Liter | | 223 | | Vitamina | food | 1.45 | 7 | Liter | |
227 | And I am on /catalog/artebonito | 224 | And I am on /catalog/artebonito |
228 | And I reload and wait for the page | 225 | And I reload and wait for the page |
229 | When I click "#inputs-button" | 226 | When I click "#inputs-button" |
230 | Then the "#inputs-description" should be visible | 227 | Then the "#inputs-description" should be visible |
231 | And I should see "7.0 Liter of food" within "#inputs-description" | 228 | And I should see "7.0 Liter of food" within "#inputs-description" |
232 | - | ||
233 | -#FIXME: pagination tests are on manage_products featuRe | ||
234 | -#FIXME: check unit and functional tests for possible wrong-placed 'features | ||
235 | -#FIXME: test unavailable product with more details | ||
236 | -#FIXME: test more than one qualifier | ||
237 | -#FIXME: put And I am on /catalog/artebonito on the Background | ||
238 | -#FIXME: test more than one input and different units | ||
239 | -#FIXME: test the product order |
features/browse_enterprises.feature
@@ -14,15 +14,14 @@ Scenario: show all enterprises | @@ -14,15 +14,14 @@ Scenario: show all enterprises | ||
14 | | identifier | name | | 14 | | identifier | name | |
15 | | shop2 | Fruits Shop | | 15 | | shop2 | Fruits Shop | |
16 | Given I am on /assets/enterprises | 16 | Given I am on /assets/enterprises |
17 | - Then I should see "Enterprises" | 17 | + Then I should see "Enterprises" |
18 | And I should see "Shoes Shop" | 18 | And I should see "Shoes Shop" |
19 | And I should see "Fruits Shop" | 19 | And I should see "Fruits Shop" |
20 | 20 | ||
21 | Scenario: show profile links button | 21 | Scenario: show profile links button |
22 | Given I am on /assets/enterprises | 22 | Given I am on /assets/enterprises |
23 | Then I should see "Profile links" within "a.enterprise-trigger" | 23 | Then I should see "Profile links" within "a.enterprise-trigger" |
24 | -# And I should not see "Products" | ||
25 | - And I should not see "Members" | 24 | + And I should not see "Members" |
26 | And I should not see "Agenda" | 25 | And I should not see "Agenda" |
27 | 26 | ||
28 | @selenium | 27 | @selenium |
@@ -37,8 +36,5 @@ Scenario: show profile links when clicked | @@ -37,8 +36,5 @@ Scenario: show profile links when clicked | ||
37 | Scenario: go to catalog when click on products link | 36 | Scenario: go to catalog when click on products link |
38 | Given I am on /assets/enterprises | 37 | Given I am on /assets/enterprises |
39 | When I follow "Profile links" | 38 | When I follow "Profile links" |
40 | -# And I follow "Products" within "ul.menu-submenu-list" | ||
41 | -# FIXME: 'Products' is a common link, may end up following the wrong one | ||
42 | And I follow "Products" and wait | 39 | And I follow "Products" and wait |
43 | Then I should be exactly on /catalog/shop1 | 40 | Then I should be exactly on /catalog/shop1 |
44 | - |
features/comment.feature
@@ -24,16 +24,15 @@ Feature: comment | @@ -24,16 +24,15 @@ Feature: comment | ||
24 | When I press "Post comment" | 24 | When I press "Post comment" |
25 | Then I should not see "Hey ho, let's go" | 25 | Then I should not see "Hey ho, let's go" |
26 | 26 | ||
27 | -# This fails because of the captcha | ||
28 | -# @selenium | ||
29 | -# Scenario: post a comment while not authenticated | ||
30 | -# Given I am on /booking/article-to-comment | ||
31 | -# And I fill in "Name" with "Joey Ramone" | ||
32 | -# And I fill in "e-mail" with "joey@ramones.com" | ||
33 | -# And I fill in "Title" with "Hey ho, let's go!" | ||
34 | -# And I fill in "Enter your comment" with "Hey ho, let's go!" | ||
35 | -# When I press "Post comment" | ||
36 | -# Then I should see "Hey ho, let's go" | 27 | + @selenium |
28 | + Scenario: post a comment while not authenticated | ||
29 | + Given I am on /booking/article-to-comment | ||
30 | + And I fill in "Name" with "Joey Ramone" | ||
31 | + And I fill in "e-mail" with "joey@ramones.com" | ||
32 | + And I fill in "Title" with "Hey ho, let's go!" | ||
33 | + And I fill in "Enter your comment" with "Hey ho, let's go!" | ||
34 | + When I press "Post comment" | ||
35 | + Then I should see "Hey ho, let's go" | ||
37 | 36 | ||
38 | @selenium | 37 | @selenium |
39 | Scenario: post comment while authenticated | 38 | Scenario: post comment while authenticated |
@@ -56,26 +55,24 @@ Feature: comment | @@ -56,26 +55,24 @@ Feature: comment | ||
56 | When I press "Post comment" | 55 | When I press "Post comment" |
57 | Then I should be exactly on /booking/rails.png?view=true | 56 | Then I should be exactly on /booking/rails.png?view=true |
58 | 57 | ||
59 | -#FIXME: only one error comes up at a time, not both | ||
60 | -# @selenium | ||
61 | -# Scenario: show error messages when make a blank comment | ||
62 | -# Given I am logged in as "booking" | ||
63 | -# And I am on /booking/article-to-comment | ||
64 | -# When I press "Post comment" | ||
65 | -# Then I should see "Title can't be blank" | ||
66 | -# And I should see "Body can't be blank" | 58 | + @selenium |
59 | + Scenario: show error messages when make a blank comment | ||
60 | + Given I am logged in as "booking" | ||
61 | + And I am on /booking/article-to-comment | ||
62 | + When I press "Post comment" | ||
63 | + Then I should see "Title can't be blank" | ||
64 | + And I should see "Body can't be blank" | ||
67 | 65 | ||
68 | -#FIXME: fails because of the captcha | ||
69 | -# @selenium | ||
70 | -# Scenario: disable post comment button | ||
71 | -# Given I am on /booking/article-to-comment | ||
72 | -# And I fill in "Name" with "Joey Ramone" | ||
73 | -# And I fill in "e-mail" with "joey@ramones.com" | ||
74 | -# And I fill in "Title" with "Hey ho, let's go!" | ||
75 | -# And I fill in "Enter your comment" with "Hey ho, let's go!" | ||
76 | -# When I press "Post comment" | ||
77 | -# Then the "value.Post comment" button should not be enabled | ||
78 | -# And I should see "Hey ho, let's go" | 66 | + @selenium |
67 | + Scenario: disable post comment button | ||
68 | + Given I am on /booking/article-to-comment | ||
69 | + And I fill in "Name" with "Joey Ramone" | ||
70 | + And I fill in "e-mail" with "joey@ramones.com" | ||
71 | + And I fill in "Title" with "Hey ho, let's go!" | ||
72 | + And I fill in "Enter your comment" with "Hey ho, let's go!" | ||
73 | + When I press "Post comment" | ||
74 | + Then the "value.Post comment" button should not be enabled | ||
75 | + And I should see "Hey ho, let's go" | ||
79 | 76 | ||
80 | @selenium | 77 | @selenium |
81 | Scenario: render comment form and go to bottom | 78 | Scenario: render comment form and go to bottom |
@@ -85,11 +82,10 @@ Feature: comment | @@ -85,11 +82,10 @@ Feature: comment | ||
85 | And I should be exactly on /booking/article-with-comment | 82 | And I should be exactly on /booking/article-with-comment |
86 | And I should be moved to anchor "comment_form" | 83 | And I should be moved to anchor "comment_form" |
87 | 84 | ||
88 | -#FIXME: fails because of the captcha | ||
89 | -# @selenium | ||
90 | -# Scenario: keep comments field filled while trying to do a comment | ||
91 | -# Given I am on /booking/article-with-comment | ||
92 | -# And I fill in "Name" with "Joey Ramone" | ||
93 | -# When I press "Post comment" | ||
94 | -# Then the "Name" field should contain "Joey Ramone" | ||
95 | -# And I should see "errors prohibited" | 85 | + @selenium |
86 | + Scenario: keep comments field filled while trying to do a comment | ||
87 | + Given I am on /booking/article-with-comment | ||
88 | + And I fill in "Name" with "Joey Ramone" | ||
89 | + When I press "Post comment" | ||
90 | + Then the "Name" field should contain "Joey Ramone" | ||
91 | + And I should see "errors prohibited" |
features/comment_reply.feature
@@ -25,15 +25,14 @@ Feature: comment | @@ -25,15 +25,14 @@ Feature: comment | ||
25 | Then I should not see "Enter your comment" within "div.comment-balloon" | 25 | Then I should not see "Enter your comment" within "div.comment-balloon" |
26 | And I should see "Reply" within "div.comment-balloon" | 26 | And I should see "Reply" within "div.comment-balloon" |
27 | 27 | ||
28 | -#FIXME: fails because only one error message comes up at a time | ||
29 | -# @selenium | ||
30 | -# Scenario: show error messages when make a blank comment reply | ||
31 | -# Given I am logged in as "booking" | ||
32 | -# And I go to /booking/article-to-comment | ||
33 | -# And I follow "Reply" within ".comment-balloon" | ||
34 | -# When I press "Post comment" within ".comment-balloon" | ||
35 | -# Then I should see "Title can't be blank" within "div.comment_reply" | ||
36 | -# And I should see "Body can't be blank" within "div.comment_reply" | 28 | + @selenium |
29 | + Scenario: show error messages when make a blank comment reply | ||
30 | + Given I am logged in as "booking" | ||
31 | + And I go to /booking/article-to-comment | ||
32 | + And I follow "Reply" within ".comment-balloon" | ||
33 | + When I press "Post comment" within ".comment-balloon" | ||
34 | + Then I should see "Title can't be blank" within "div.comment_reply" | ||
35 | + And I should see "Body can't be blank" within "div.comment_reply" | ||
37 | 36 | ||
38 | @selenium | 37 | @selenium |
39 | Scenario: not show any reply form by default | 38 | Scenario: not show any reply form by default |
@@ -63,32 +62,30 @@ Feature: comment | @@ -63,32 +62,30 @@ Feature: comment | ||
63 | Then there should be 1 "comment_form" within "comment_reply" | 62 | Then there should be 1 "comment_form" within "comment_reply" |
64 | And I should see "Enter your comment" within "div.comment_reply.opened" | 63 | And I should see "Enter your comment" within "div.comment_reply.opened" |
65 | 64 | ||
66 | -#FIXME: fails because of the captcha | ||
67 | -# @selenium | ||
68 | -# Scenario: reply a comment | ||
69 | -# Given I go to /booking/another-article | ||
70 | -# And I follow "Reply" within ".comment-balloon" | ||
71 | -# And I fill in "Name" within "comment-balloon" with "Joey" | ||
72 | -# And I fill in "e-mail" within "comment-balloon" with "joey@ramones.com" | ||
73 | -# And I fill in "Title" within "comment-balloon" with "Hey ho, let's go!" | ||
74 | -# And I fill in "Enter your comment" within "comment-balloon" with "Hey ho, let's go!" | ||
75 | -# When I press "Post comment" within ".comment-balloon" | ||
76 | -# Then I should see "Hey ho, let's go" within "ul.comment-replies" | ||
77 | -# And there should be 1 "comment-replies" within "article-comment" | 65 | + @selenium |
66 | + Scenario: reply a comment | ||
67 | + Given I go to /booking/another-article | ||
68 | + And I follow "Reply" within ".comment-balloon" | ||
69 | + And I fill in "Name" within "comment-balloon" with "Joey" | ||
70 | + And I fill in "e-mail" within "comment-balloon" with "joey@ramones.com" | ||
71 | + And I fill in "Title" within "comment-balloon" with "Hey ho, let's go!" | ||
72 | + And I fill in "Enter your comment" within "comment-balloon" with "Hey ho, let's go!" | ||
73 | + When I press "Post comment" within ".comment-balloon" | ||
74 | + Then I should see "Hey ho, let's go" within "ul.comment-replies" | ||
75 | + And there should be 1 "comment-replies" within "article-comment" | ||
78 | 76 | ||
79 | -#FIXME: fails because of the captcha | ||
80 | -# @selenium | ||
81 | -# Scenario: redirect to right place after reply a picture comment | ||
82 | -# Given the following files | ||
83 | -# | owner | file | mime | | ||
84 | -# | booking | rails.png | image/png | | ||
85 | -# And the following comment | ||
86 | -# | article | author | title | body | | ||
87 | -# | rails.png | booking | root comment | this comment is not a reply | | ||
88 | -# Given I am logged in as "booking" | ||
89 | -# And I go to /booking/rails.png?view=true | ||
90 | -# And I follow "Reply" within ".comment-balloon" | ||
91 | -# And I fill in "Title" within "comment-balloon" with "Hey ho, let's go!" | ||
92 | -# And I fill in "Enter your comment" within "comment-balloon" with "Hey ho, let's go!" | ||
93 | -# When I press "Post comment" within ".comment-balloon" | ||
94 | -# Then I should be exactly on /booking/rails.png?view=true | 77 | + @selenium |
78 | + Scenario: redirect to right place after reply a picture comment | ||
79 | + Given the following files | ||
80 | + | owner | file | mime | | ||
81 | + | booking | rails.png | image/png | | ||
82 | + And the following comment | ||
83 | + | article | author | title | body | | ||
84 | + | rails.png | booking | root comment | this comment is not a reply | | ||
85 | + Given I am logged in as "booking" | ||
86 | + And I go to /booking/rails.png?view=true | ||
87 | + And I follow "Reply" within ".comment-balloon" | ||
88 | + And I fill in "Title" within "comment-balloon" with "Hey ho, let's go!" | ||
89 | + And I fill in "Enter your comment" within "comment-balloon" with "Hey ho, let's go!" | ||
90 | + When I press "Post comment" within ".comment-balloon" | ||
91 | + Then I should be exactly on /booking/rails.png?view=true |
features/enterprise_homepage.feature
@@ -20,63 +20,18 @@ Feature: enterprise homepage | @@ -20,63 +20,18 @@ Feature: enterprise homepage | ||
20 | | soap | | 20 | | soap | |
21 | And the following product | 21 | And the following product |
22 | | name | category | owner | | 22 | | name | category | owner | |
23 | - | Natural Handmade | soap | mayhem | | 23 | + | Natural Handmade | soap | mayhem | |
24 | 24 | ||
25 | 25 | ||
26 | -# should 'display profile info' do | ||
27 | -# e = Enterprise.create!(:name => 'my test enterprise', :identifier => 'mytestenterprise', :contact_email => 'ent@noosfero.foo.bar', :contact_phone => '5555 5555') | ||
28 | -# a = EnterpriseHomepage.new(:name => 'article homepage') | ||
29 | -# e.articles << a | ||
30 | -# result = a.to_html | ||
31 | -# assert_match /ent@noosfero.foo.bar/, result | ||
32 | -# assert_match /5555 5555/, result | ||
33 | -# end | ||
34 | - | ||
35 | Scenario: display profile info | 26 | Scenario: display profile info |
36 | When I go to /mayhem/homepage | 27 | When I go to /mayhem/homepage |
37 | Then I should see "queen@workerbees.org" | 28 | Then I should see "queen@workerbees.org" |
38 | And I should see "(288) 555-0153" | 29 | And I should see "(288) 555-0153" |
39 | 30 | ||
40 | -# should 'display products list' do | ||
41 | -# ent = fast_create(Enterprise, :identifier => 'test_enterprise', :name => 'Test enteprise') | ||
42 | -# prod = ent.products.create!(:name => 'Product test', :product_category => @product_category) | ||
43 | -# a = EnterpriseHomepage.new(:name => 'article homepage') | ||
44 | -# ent.articles << a | ||
45 | -# result = a.to_html | ||
46 | -# assert_match /Product test/, result | ||
47 | -# end | ||
48 | - | ||
49 | Scenario: display products list | 31 | Scenario: display products list |
50 | When I go to /mayhem/homepage | 32 | When I go to /mayhem/homepage |
51 | Then I should see "Natural Handmade" | 33 | Then I should see "Natural Handmade" |
52 | 34 | ||
53 | -# should 'not display products list if environment do not let' do | ||
54 | -# e = Environment.default | ||
55 | -# e.enable('disable_products_for_enterprises') | ||
56 | -# e.save! | ||
57 | -# ent = fast_create(Enterprise, :identifier => 'test_enterprise', :name => 'Test enteprise', :environment_id => e.id) | ||
58 | -# prod = ent.products.create!(:name => 'Product test', :product_category => @product_category) | ||
59 | -# a = EnterpriseHomepage.new(:name => 'article homepage') | ||
60 | -# ent.articles << a | ||
61 | -# result = a.to_html | ||
62 | -# assert_no_match /Product test/, result | ||
63 | -# end | ||
64 | - | ||
65 | -# FIXME: not working | ||
66 | -# Scenario: not display products list if environment do not let | ||
67 | -# Given feature "disable_products_for_enterprises" is enabled on environment | ||
68 | -# When I go to /mayhem/homepage | ||
69 | -# Then I should not see "Natural Handmade" | ||
70 | - | ||
71 | -# should 'display link to product' do | ||
72 | -# ent = fast_create(Enterprise, :identifier => 'test_enterprise', :name => 'Test enteprise') | ||
73 | -# prod = ent.products.create!(:name => 'Product test', :product_category => @product_category) | ||
74 | -# a = EnterpriseHomepage.new(:name => 'article homepage') | ||
75 | -# ent.articles << a | ||
76 | -# result = a.to_html | ||
77 | -# assert_match /\/test_enterprise\/manage_products\/show\/#{prod.id}/, result | ||
78 | -# end | ||
79 | - | ||
80 | Scenario: display link to product | 35 | Scenario: display link to product |
81 | When I go to /mayhem/homepage | 36 | When I go to /mayhem/homepage |
82 | And I follow "Natural Handmade" | 37 | And I follow "Natural Handmade" |
features/manage_enterprises.feature
@@ -11,13 +11,12 @@ Feature: manage enterprises | @@ -11,13 +11,12 @@ Feature: manage enterprises | ||
11 | | identifier | name | owner | | 11 | | identifier | name | owner | |
12 | | tangerine-dream | Tangerine Dream | joaosilva | | 12 | | tangerine-dream | Tangerine Dream | joaosilva | |
13 | 13 | ||
14 | -#FIXME: falha pois o clique em "My enterprises" não faz o popup aparecer | ||
15 | -# @selenium | ||
16 | -# Scenario: seeing my enterprises on menu | ||
17 | -# Given I am logged in as "joaosilva" | ||
18 | -# Then I should see "My enterprises" link | ||
19 | -# When I follow "My enterprises" and wait | ||
20 | -# Then I should see "Tangerine Dream" linking to "/myprofile/tangerine-dream" | 14 | + @selenium |
15 | + Scenario: seeing my enterprises on menu | ||
16 | + Given I am logged in as "joaosilva" | ||
17 | + Then I should see "My enterprises" link | ||
18 | + When I follow "My enterprises" and wait | ||
19 | + Then I should see "Tangerine Dream" linking to "/myprofile/tangerine-dream" | ||
21 | 20 | ||
22 | @selenium | 21 | @selenium |
23 | Scenario: not show enterprises on menu to a user without enterprises | 22 | Scenario: not show enterprises on menu to a user without enterprises |
features/manage_products.feature
@@ -392,22 +392,21 @@ Feature: manage products | @@ -392,22 +392,21 @@ Feature: manage products | ||
392 | # And I should see "An used red bicycle" | 392 | # And I should see "An used red bicycle" |
393 | # And I should be on Rede Moinho's page of product Bike | 393 | # And I should be on Rede Moinho's page of product Bike |
394 | 394 | ||
395 | -# FIXME Not working -- 'cancel' is not clicked for some reason | ||
396 | -# @selenium | ||
397 | -# Scenario: cancel edition of a product description | ||
398 | -# Given the following product_category | ||
399 | -# | name | | ||
400 | -# | Bicycle | | ||
401 | -# And the following products | ||
402 | -# | owner | category | name | description | | ||
403 | -# | redemoinho | bicycle | Bike | A new red bicycle | | ||
404 | -# And I am logged in as "joaosilva" | ||
405 | -# When I go to Rede Moinho's page of product Bike | ||
406 | -# Then I should see "A new red bicycle" | ||
407 | -# And I follow "Edit description" | ||
408 | -# When I follow "Cancel" | ||
409 | -# Then I should see "A new red bicycle" | ||
410 | -# And I should be on Rede Moinho's page of product Bike | 395 | + @selenium |
396 | + Scenario: cancel edition of a product description | ||
397 | + Given the following product_category | ||
398 | + | name | | ||
399 | + | Bicycle | | ||
400 | + And the following products | ||
401 | + | owner | category | name | description | | ||
402 | + | redemoinho | bicycle | Bike | A new red bicycle | | ||
403 | + And I am logged in as "joaosilva" | ||
404 | + When I go to Rede Moinho's page of product Bike | ||
405 | + Then I should see "A new red bicycle" | ||
406 | + And I follow "Edit description" | ||
407 | + When I follow "Cancel" | ||
408 | + Then I should see "A new red bicycle" | ||
409 | + And I should be on Rede Moinho's page of product Bike | ||
411 | 410 | ||
412 | @selenium | 411 | @selenium |
413 | Scenario: Edit product category and save without select any category | 412 | Scenario: Edit product category and save without select any category |
features/profile_domain.feature
1 | Feature: domain for profile | 1 | Feature: domain for profile |
2 | + | ||
2 | As a user | 3 | As a user |
3 | I want access a profile by its own domain | 4 | I want access a profile by its own domain |
4 | 5 | ||
@@ -65,9 +66,8 @@ Feature: domain for profile | @@ -65,9 +66,8 @@ Feature: domain for profile | ||
65 | And I follow "Go to the home page" | 66 | And I follow "Go to the home page" |
66 | Then the page title should be "Colivre.net" | 67 | Then the page title should be "Colivre.net" |
67 | 68 | ||
68 | -# FIXME: the administration link doesn't appear | ||
69 | -# @selenium | ||
70 | -# Scenario: Compose link to administration with environment domain | ||
71 | -# Given I am logged in as "joaosilva" | ||
72 | -# When I visit "/" and wait | ||
73 | -# Then I should see "Administration" linking to "http://127.0.0.1/admin" | 69 | + @selenium |
70 | + Scenario: Compose link to administration with environment domain | ||
71 | + Given I am logged in as "joaosilva" | ||
72 | + When I visit "/" and wait | ||
73 | + Then I should see "Administration" linking to "http://127.0.0.1/admin" |
features/step_definitions/noosfero_steps.rb
@@ -150,16 +150,6 @@ Given /^the following products?$/ do |table| | @@ -150,16 +150,6 @@ Given /^the following products?$/ do |table| | ||
150 | data = item.dup | 150 | data = item.dup |
151 | owner = Enterprise[data.delete("owner")] | 151 | owner = Enterprise[data.delete("owner")] |
152 | category = Category.find_by_slug(data.delete("category").to_slug) | 152 | category = Category.find_by_slug(data.delete("category").to_slug) |
153 | - img = Image.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')) | ||
154 | - product = Product.create!(data.merge(:enterprise => owner, :product_category => category, :image_id => img.id)) | ||
155 | - end | ||
156 | -end | ||
157 | - | ||
158 | -Given /^the following simple products?$/ do |table| | ||
159 | - table.hashes.each do |item| | ||
160 | - data = item.dup | ||
161 | - owner = Enterprise[data.delete("owner")] | ||
162 | - category = Category.find_by_slug(data.delete("category").to_slug) | ||
163 | data.merge!(:enterprise => owner, :product_category => category) | 153 | data.merge!(:enterprise => owner, :product_category => category) |
164 | if data[:img] | 154 | if data[:img] |
165 | img = Image.create!(:uploaded_data => fixture_file_upload('/files/'+data.delete("img")+'.png', 'image/png')) | 155 | img = Image.create!(:uploaded_data => fixture_file_upload('/files/'+data.delete("img")+'.png', 'image/png')) |
@@ -167,7 +157,7 @@ Given /^the following simple products?$/ do |table| | @@ -167,7 +157,7 @@ Given /^the following simple products?$/ do |table| | ||
167 | end | 157 | end |
168 | if data[:qualifier] | 158 | if data[:qualifier] |
169 | qualifier = Qualifier.find_by_name(data.delete("qualifier")) | 159 | qualifier = Qualifier.find_by_name(data.delete("qualifier")) |
170 | - data.merge!(:qualifiers => [qualifier]) | 160 | + data.merge!(:qualifiers => [qualifier]) |
171 | end | 161 | end |
172 | product = Product.create!(data) | 162 | product = Product.create!(data) |
173 | end | 163 | end |
public/javascripts/catalog.js
1 | -function open() { | ||
2 | - if (this.clicked) return; | ||
3 | - jQuery(this).addClass('open'); | ||
4 | -} | ||
5 | - | ||
6 | -function close() { | ||
7 | - if (this.clicked) return; | ||
8 | - jQuery(this).removeClass('open'); | ||
9 | -} | 1 | +(function($) { |
10 | 2 | ||
11 | -function click(e) { | ||
12 | - jQuery(e).toggleClass('open', e.clicked); | ||
13 | - jQuery(e).children('div').toggle(e.clicked).css({left: jQuery(e).position().left-180, top: jQuery(e).position().top-10}); | ||
14 | -} | ||
15 | - | ||
16 | -function hover() { | ||
17 | - jQuery(this).toggleClass('hover'); | ||
18 | -} | ||
19 | - | ||
20 | -jQuery('#product-list .product .expand-box').hover(hover, hover).click(function () { | 3 | +$('#product-list .product .expand-box').hover(hover, hover).live('click', function () { |
21 | this.clicked = !this.clicked; | 4 | this.clicked = !this.clicked; |
22 | click(this); | 5 | click(this); |
23 | - jQuery.each(jQuery(this).siblings('.expand-box'), function(index, value) { value.clicked = false; click(value); }); | 6 | + $.each($(this).siblings('.expand-box'), function(index, value) { value.clicked = false; click(value); }); |
24 | 7 | ||
25 | return false; | 8 | return false; |
26 | }); | 9 | }); |
27 | 10 | ||
28 | -jQuery(document).click(function() { | ||
29 | - jQuery.each(jQuery('#product-list .product .expand-box'), function(index, value) { value.clicked = false; click(value); }); | 11 | +$(document).live('click', function() { |
12 | + $.each($('#product-list .product .expand-box'), function(index, value) { value.clicked = false; click(value); }); | ||
30 | }); | 13 | }); |
31 | 14 | ||
32 | var rows = {}; | 15 | var rows = {}; |
33 | -jQuery('#product-list .product').each(function (index, element) { | ||
34 | - obj = rows[jQuery(element).offset().top] || {}; | 16 | +$('#product-list .product').each(function (index, element) { |
17 | + obj = rows[$(element).offset().top] || {}; | ||
35 | 18 | ||
36 | obj.heights = obj.heights || []; | 19 | obj.heights = obj.heights || []; |
37 | obj.elements = obj.elements || []; | 20 | obj.elements = obj.elements || []; |
38 | - obj.heights.push(jQuery(element).height()); | 21 | + obj.heights.push($(element).height()); |
39 | obj.elements.push(element); | 22 | obj.elements.push(element); |
40 | 23 | ||
41 | - rows[jQuery(element).offset().top] = obj; | 24 | + rows[$(element).offset().top] = obj; |
42 | }); | 25 | }); |
43 | 26 | ||
44 | -jQuery.each(rows, function(top, obj) { | 27 | +$.each(rows, function(top, obj) { |
45 | maxWidth = Array.max(obj.heights); | 28 | maxWidth = Array.max(obj.heights); |
46 | - jQuery(obj.elements).height(maxWidth); | 29 | + $(obj.elements).height(maxWidth); |
47 | }); | 30 | }); |
48 | 31 | ||
32 | +})(jQuery); | ||
33 | + | ||
34 | +function open() { | ||
35 | + if (this.clicked) return; | ||
36 | + jQuery(this).addClass('open'); | ||
37 | +} | ||
38 | + | ||
39 | +function close() { | ||
40 | + if (this.clicked) return; | ||
41 | + jQuery(this).removeClass('open'); | ||
42 | +} | ||
43 | + | ||
44 | +function click(e) { | ||
45 | + jQuery(e).toggleClass('open', e.clicked); | ||
46 | + jQuery(e).children('div').toggle(e.clicked).css({left: jQuery(e).position().left-180, top: jQuery(e).position().top-10}); | ||
47 | +} | ||
48 | + | ||
49 | +function hover() { | ||
50 | + jQuery(this).toggleClass('hover'); | ||
51 | +} |
test/functional/catalog_controller_test.rb
@@ -72,14 +72,6 @@ class CatalogControllerTest < Test::Unit::TestCase | @@ -72,14 +72,6 @@ class CatalogControllerTest < Test::Unit::TestCase | ||
72 | assert_tag :tag => 'span', :attributes => { :class => 'product-price with-discount' }, :content => /50.00/ | 72 | assert_tag :tag => 'span', :attributes => { :class => 'product-price with-discount' }, :content => /50.00/ |
73 | end | 73 | end |
74 | 74 | ||
75 | -# should 'link to assets products with product category in the link to product category on index' do | ||
76 | -# pc = ProductCategory.create!(:name => 'some product', :environment => enterprise.environment) | ||
77 | -# prod = enterprise.products.create!(:name => 'Product test', :price => 50.00, :product_category => pc) | ||
78 | -# | ||
79 | -# get :index, :profile => enterprise.identifier | ||
80 | -# assert_tag :tag => 'a', :attributes => {:href => /assets\/products\?product_category=#{pc.id}/} | ||
81 | -# end | ||
82 | - | ||
83 | should 'add an zero width space every 4 caracters of comment urls' do | 75 | should 'add an zero width space every 4 caracters of comment urls' do |
84 | url = 'www.an.url.to.be.splited.com' | 76 | url = 'www.an.url.to.be.splited.com' |
85 | prod = @enterprise.products.create!(:name => 'Product test', :price => 50.00, :product_category => @product_category, :description => url) | 77 | prod = @enterprise.products.create!(:name => 'Product test', :price => 50.00, :product_category => @product_category, :description => url) |
test/functional/maps_controller_test.rb
@@ -22,12 +22,12 @@ class MapsControllerTest < Test::Unit::TestCase | @@ -22,12 +22,12 @@ class MapsControllerTest < Test::Unit::TestCase | ||
22 | assert_equal 'new address', Profile['test_profile'].address | 22 | assert_equal 'new address', Profile['test_profile'].address |
23 | end | 23 | end |
24 | 24 | ||
25 | -# should 'back when update address fail' do | ||
26 | -# Profile.any_instance.stubs(:update_attributes!).returns(false) | ||
27 | -# post :edit_location, :profile => profile.identifier, :profile_data => { 'address' => 'new address' } | ||
28 | -# assert_nil profile.address | ||
29 | -# assert_template 'edit_location' | ||
30 | -# end | 25 | + should 'back when update address fail' do |
26 | + Profile.any_instance.stubs(:update_attributes!).returns(false) | ||
27 | + post :edit_location, :profile => profile.identifier, :profile_data => { 'address' => 'new address' } | ||
28 | + assert_nil profile.address | ||
29 | + assert_template 'edit_location' | ||
30 | + end | ||
31 | 31 | ||
32 | should 'show page to edit location' do | 32 | should 'show page to edit location' do |
33 | get :edit_location, :profile => profile.identifier | 33 | get :edit_location, :profile => profile.identifier |
test/unit/enterprise_homepage_test.rb
@@ -16,47 +16,6 @@ class EnterpriseHomepageTest < Test::Unit::TestCase | @@ -16,47 +16,6 @@ class EnterpriseHomepageTest < Test::Unit::TestCase | ||
16 | assert_kind_of String, EnterpriseHomepage.description | 16 | assert_kind_of String, EnterpriseHomepage.description |
17 | end | 17 | end |
18 | 18 | ||
19 | -# These tests are being moved into features, since they're view tests | ||
20 | - | ||
21 | -# should 'display profile info' do | ||
22 | -# e = Enterprise.create!(:name => 'my test enterprise', :identifier => 'mytestenterprise', :contact_email => 'ent@noosfero.foo.bar', :contact_phone => '5555 5555') | ||
23 | -# a = EnterpriseHomepage.new(:name => 'article homepage') | ||
24 | -# e.articles << a | ||
25 | -# result = a.to_html | ||
26 | -# assert_match /ent@noosfero.foo.bar/, result | ||
27 | -# assert_match /5555 5555/, result | ||
28 | -# end | ||
29 | - | ||
30 | -# should 'display products list' do | ||
31 | -# ent = fast_create(Enterprise, :identifier => 'test_enterprise', :name => 'Test enteprise') | ||
32 | -# prod = ent.products.create!(:name => 'Product test', :product_category => @product_category) | ||
33 | -# a = EnterpriseHomepage.new(:name => 'article homepage') | ||
34 | -# ent.articles << a | ||
35 | -# result = a.to_html | ||
36 | -# assert_match /Product test/, result | ||
37 | -# end | ||
38 | - | ||
39 | -# should 'not display products list if environment do not let' do | ||
40 | -# e = Environment.default | ||
41 | -# e.enable('disable_products_for_enterprises') | ||
42 | -# e.save! | ||
43 | -# ent = fast_create(Enterprise, :identifier => 'test_enterprise', :name => 'Test enteprise', :environment_id => e.id) | ||
44 | -# prod = ent.products.create!(:name => 'Product test', :product_category => @product_category) | ||
45 | -# a = EnterpriseHomepage.new(:name => 'article homepage') | ||
46 | -# ent.articles << a | ||
47 | -# result = a.to_html | ||
48 | -# assert_no_match /Product test/, result | ||
49 | -# end | ||
50 | - | ||
51 | -# should 'display link to product' do | ||
52 | -# ent = fast_create(Enterprise, :identifier => 'test_enterprise', :name => 'Test enteprise') | ||
53 | -# prod = ent.products.create!(:name => 'Product test', :product_category => @product_category) | ||
54 | -# a = EnterpriseHomepage.new(:name => 'article homepage') | ||
55 | -# ent.articles << a | ||
56 | -# result = a.to_html | ||
57 | -# assert_match /\/test_enterprise\/manage_products\/show\/#{prod.id}/, result | ||
58 | -# end | ||
59 | - | ||
60 | should 'return a valid body' do | 19 | should 'return a valid body' do |
61 | e = EnterpriseHomepage.new(:name => 'sample enterprise homepage') | 20 | e = EnterpriseHomepage.new(:name => 'sample enterprise homepage') |
62 | assert_not_nil e.to_html | 21 | assert_not_nil e.to_html |