Skip to content

Commit 8b87924

Browse files
committed
Testcase: search ViewTypes
1 parent cdf5424 commit 8b87924

File tree

3 files changed

+89
-18
lines changed

3 files changed

+89
-18
lines changed

app.js

Lines changed: 52 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,45 @@ var config = {
1010
,searchQueryDisplay : '#search_title'
1111
,searchQueryDisplayTemp : 'Showing results for {{query}} - {{start}}-{{end}} of {{numberOfProducts}} Results'
1212
,pageSize : 12
13-
,searchResultSetTemp : [
14-
'{{#products}}'
15-
,'<li>'
16-
,'<a href="product.html?pid={{uniqueId}}" id="pdt-{{uniqueId}}" class="result-item" unbxdParam_sku="{{uniqueId}}" unbxdParam_pRank="{{unbxdprank}}" unbxdAttr="product">'
17-
,'<div class="result-image-container">'
18-
,'<span class="result-image-horizontal-holder">'
19-
,'<img src="{{{image_url}}}" alt="{{{title}}}">'
20-
,'</span>'
21-
,'</div>'
22-
,'<div class="result-brand">{{{brand}}}</div>'
23-
,'<div class="result-title">{{{title}}}</div>'
24-
,'<div class="result-price">'
25-
,'${{price}}'
26-
,'</div>'
27-
,'</a>'
28-
,'</li>'
29-
,'{{/products}}'
30-
].join('')
13+
,searchResultSetTemp :
14+
{
15+
"grid" : [
16+
'{{#products}}'
17+
,'<li class="grid_view">'
18+
,'<a href="product.html?pid={{uniqueId}}" id="pdt-{{uniqueId}}" class="result-item" unbxdParam_sku="{{uniqueId}}" unbxdParam_pRank="{{unbxdprank}}" unbxdAttr="product">'
19+
,'<div class="result-image-container">'
20+
,'<span class="result-image-horizontal-holder">'
21+
,'<img src="{{{image_url}}}" alt="{{{title}}}">'
22+
,'</span>'
23+
,'</div>'
24+
,'<div class="result-brand">{{{brand}}}</div>'
25+
,'<div class="result-title">{{{title}}}</div>'
26+
,'<div class="result-price">'
27+
,'${{price}}'
28+
,'</div>'
29+
,'</a>'
30+
,'</li>'
31+
,'{{/products}}'
32+
].join(''),
33+
"list" : [
34+
'{{#products}}'
35+
,'<li class="list_view">'
36+
,'<a href="product.html?pid={{uniqueId}}" id="pdt-{{uniqueId}}" class="result-item" unbxdParam_sku="{{uniqueId}}" unbxdParam_pRank="{{unbxdprank}}" unbxdAttr="product">'
37+
,'<div class="result-image-container">'
38+
,'<span class="result-image-horizontal-holder">'
39+
,'<img src="{{{image_url}}}" alt="{{{title}}}">'
40+
,'</span>'
41+
,'</div>'
42+
,'<div class="result-brand">{{{brand}}}</div>'
43+
,'<div class="result-title">{{{title}}}</div>'
44+
,'<div class="result-price">'
45+
,'${{price}}'
46+
,'</div>'
47+
,'</a>'
48+
,'</li>'
49+
,'{{/products}}'
50+
].join('')
51+
}
3152
,searchResultContainer : '#results_container'
3253
,isClickNScroll: false
3354
,clickNScrollSelector : ''
@@ -173,4 +194,17 @@ var config = {
173194
].join('')
174195
,fields : ['image_url','title','brand','price','uniqueId']
175196
,searchQueryParam:"q"
197+
,viewTypes: ['grid', 'list']
198+
,viewTypeContainerSelector: '.view_type_select'
199+
,viewTypeContainerTemp: [
200+
'{{#options}}',
201+
'<li class="unbxd-{{#if selected}}current{{/if}}">',
202+
'<a title="{{value}} View" class="unbxd-{{value}}view-button" {{#unless selected}}unbxdviewtype="{{value}}"{{/unless}}>',
203+
'<span class="icon-{{value}}view">',
204+
'{{value}}',
205+
'</span>',
206+
'</a>',
207+
'</li>',
208+
'{{/options}}'
209+
].join('')
176210
};

index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<div class="search-container">
1414
<div class="row clearfix">
1515
<div id="pagination_container"></div>
16+
<div class="view_type_select"></div>
1617
<div class="banner"></div>
1718
<div class="lt search-facet-column" id="facets_container">
1819
</div>

test/search/viewType.spec.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
describe('ViewTypes', function () {
2+
var expect = window.expect;
3+
before(function(){
4+
fixture.setBase('mock');
5+
var searchTest = fixture.load('searchTestResponse.json');
6+
//setup document to hold search results
7+
document.body.innerHTML = __html__['index.html'];
8+
9+
//initialize search
10+
window.searchobj = new window.Unbxd.setSearch(window.config);
11+
12+
//stub search ajax call with mock response
13+
this.stub = sinon.stub(jQuery, 'ajax').yieldsTo('success', searchTest);
14+
15+
});
16+
17+
after(function(){
18+
this.stub.restore();
19+
});
20+
21+
beforeEach(function(){
22+
//reset params applied
23+
window.searchobj.reset();
24+
window.searchobj.callResults(window.searchobj.paintResultSet);
25+
});
26+
27+
it('Should load List view', function(){
28+
jQuery('[unbxdviewtype="list"]').click();
29+
expect(window.searchobj.getViewType()).to.be.equal('list');
30+
});
31+
32+
it('Should load Grid view', function(){
33+
jQuery('[unbxdviewtype="grid"]').click();
34+
expect(window.searchobj.getViewType()).to.be.equal('grid');
35+
});
36+
});

0 commit comments

Comments
 (0)