Skip to content
This repository has been archived by the owner on Mar 15, 2018. It is now read-only.

Commit

Permalink
Merge pull request #1066 from ngokevin/plat
Browse files Browse the repository at this point in the history
make platform filter persist between sessions again (bug 1127080)
  • Loading branch information
ngokevin committed Mar 9, 2015
2 parents 417762a + 8f83300 commit 81d0db5
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 27 deletions.
9 changes: 7 additions & 2 deletions src/media/js/compat_filter.js
Expand Up @@ -51,11 +51,13 @@ define('compat_filter',
];
var actualPlatform = caps.device_platform();
var actualFormFactor = caps.device_formfactor();
var filterDevice = caps.device_type();
var filterDeviceLSKey = 'filter-device';
var filterDevice = storage.getItem(filterDeviceLSKey) || caps.device_type();

z.body.on('change', '#compat-filter', function() {
// Update device preferences and reload view to refresh changes.
filterDevice = this[this.selectedIndex].value;
storage.setItem(filterDeviceLSKey, filterDevice);
logger.log('Filtering: ' + filterDevice);
views.reload();
});
Expand All @@ -69,7 +71,10 @@ define('compat_filter',
// On desktop, the default is no filtering.
if (actualPlatform == 'desktop') {
actualPlatform = '';
filterDevice = '';

if (!storage.getItem(filterDeviceLSKey)) {
filterDevice = '';
}
}

// For mobile, set limit to 10.
Expand Down
45 changes: 20 additions & 25 deletions tests/ui/compat_filter.js
Expand Up @@ -13,30 +13,20 @@ function assertSelectedDevice(test, device) {
}


function clearLS() {
casper.evaluate(function() {
window.require('core/storage').clear();
});
}


appList.appListPages.forEach(function(appListPage) {
if (!appListPage.appLimit) {
appListPage.appLimit = constants.APP_LIMIT;
}

if (!appListPage.noCompatFiltering) {
casper.test.begin(appListPage.name + ' page compatibility filtering tests', {
test: function(test) {
appList.waitForAppListPage(appListPage, function() {
test.assertField('compat_filter', 'all');
});

if (!appListPage.noLoadMore) {
appList.waitForLoadMore(function() {
// Test compatibility filtering after load more.
test.assertField('compat_filter', 'all');
});
}

helpers.done(test);
}
});

casper.test.begin(appListPage.name + ' compatibility filtering tests', {
casper.test.begin('Test ' + appListPage.name + ' compat filter', {
test: function(test) {
helpers.startCasper({
path: new jsuri(appListPage.path)
Expand Down Expand Up @@ -81,7 +71,8 @@ appList.appListPages.forEach(function(appListPage) {
}

helpers.done(test);
}
},
tearDown: clearLS
});
}
});
Expand Down Expand Up @@ -115,7 +106,8 @@ casper.test.begin('Test compat filter dropdown change', {
});

helpers.done(test);
}
},
tearDown: clearLS
});


Expand All @@ -138,11 +130,12 @@ casper.test.begin('Test compat filter dropdown persist for site', {
});

helpers.done(test);
}
},
tearDown: clearLS
});


casper.test.begin('Test compat filter dropdown no persist between sessions', {
casper.test.begin('Test compat filter dropdown persists between sessions', {
test: function(test) {
helpers.startCasper(new jsuri('/search').addQueryParam('q', 'foo'));

Expand All @@ -152,11 +145,12 @@ casper.test.begin('Test compat filter dropdown no persist between sessions', {
});

casper.waitForSelector('[data-page-type~="popular"]', function() {
assertSelectedDevice(test, '');
assertSelectedDevice(test, 'firefoxos');
});

helpers.done(test);
}
},
tearDown: clearLS
});


Expand All @@ -178,5 +172,6 @@ casper.test.begin('Test compat filtering persists after search', {
});

helpers.done(test);
}
},
tearDown: clearLS
});

0 comments on commit 81d0db5

Please sign in to comment.