Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
146 lines
3.6 KiB
JavaScript
Executable file
146 lines
3.6 KiB
JavaScript
Executable file
/* global marionette, require, setup, suite, test */
|
|
'use strict';
|
|
|
|
var assert = require('assert');
|
|
var Fm = require('./lib/fm.js');
|
|
|
|
|
|
marionette('FM Radio test', function() {
|
|
|
|
var client = marionette.client({
|
|
profile: {},
|
|
desiredCapabilities: { raisesAccessibilityExceptions: false }
|
|
});
|
|
|
|
|
|
var fm;
|
|
|
|
setup(function() {
|
|
fm = new Fm(client);
|
|
|
|
fm.launch();
|
|
fm.waitForLoaded();
|
|
|
|
});
|
|
|
|
|
|
suite('FM Radio UI', function() {
|
|
test('Test basic UI', function() {
|
|
try {
|
|
var freq = fm.getCurrentFrequency();
|
|
assert.equal(freq, '87.5');
|
|
|
|
var dialFreq = fm.getDialFreq();
|
|
assert.equal(dialFreq, '87.5');
|
|
|
|
assert.equal(freq, dialFreq);
|
|
|
|
// test seek up and down
|
|
var startFreq = freq;
|
|
|
|
fm.seekUp();
|
|
|
|
freq = fm.getCurrentFrequency();
|
|
assert.notEqual(freq, startFreq);
|
|
|
|
dialFreq = fm.getDialFreq();
|
|
assert.equal(parseFloat(dialFreq), parseFloat(freq));
|
|
|
|
fm.seekDown();
|
|
|
|
freq = fm.getCurrentFrequency();
|
|
assert.equal(freq, startFreq);
|
|
|
|
dialFreq = fm.getDialFreq();
|
|
assert.equal(parseFloat(dialFreq), parseFloat(freq));
|
|
|
|
// see about the frequency being saved.
|
|
fm.seekUp();
|
|
startFreq = fm.getCurrentFrequency();
|
|
fm.close();
|
|
|
|
fm.launch();
|
|
fm.waitForLoaded();
|
|
freq = fm.getCurrentFrequency();
|
|
assert.equal(parseFloat(freq), parseFloat(startFreq));
|
|
|
|
} catch(e) {
|
|
assert.ok(false, e.stack);
|
|
}
|
|
});
|
|
});
|
|
|
|
suite('FM Radio favourites', function() {
|
|
test('Test favouriting', function() {
|
|
try {
|
|
fm.seekUp();
|
|
|
|
var isFav = fm.isFav();
|
|
assert.ok(!isFav, 'Frequency shouldn\'t have been favourited');
|
|
|
|
fm.fav();
|
|
isFav = fm.isFav();
|
|
assert.ok(isFav, 'Frequency should be favourited');
|
|
|
|
fm.close();
|
|
|
|
fm.launch();
|
|
fm.waitForLoaded();
|
|
|
|
isFav = fm.isFav();
|
|
assert.ok(isFav, 'Frequency should be favourited after reboot.');
|
|
|
|
// checking we have a selected favourite.
|
|
var elem = fm.selectedFavItem();
|
|
assert.ok(elem, 'Can\'t find selected favourite');
|
|
|
|
var freq = fm.getCurrentFrequency();
|
|
|
|
// checking the text content of the favourite.
|
|
var favFreq = fm.selectedFavItemText();
|
|
assert.equal(favFreq, freq,
|
|
'Current frequency and selected favourite do not match');
|
|
|
|
// checking the id of the favourite.
|
|
var id = elem.getAttribute('id');
|
|
favFreq = id.substring(id.indexOf('-') + 1);
|
|
assert.equal(
|
|
parseFloat(favFreq), parseFloat(freq),
|
|
'Current frequency and selected favourite ID do not match');
|
|
|
|
fm.seekUp();
|
|
var newFreq = fm.getCurrentFrequency();
|
|
|
|
assert.notEqual(freq, newFreq);
|
|
|
|
fm.fav();
|
|
assert.ok(fm.isFav());
|
|
|
|
// count number of favs. Should be 2.
|
|
var elems = client.findElement(Fm.Selector.favList).
|
|
findElements(Fm.Selector.favItem);
|
|
assert.equal(elems.length, 2);
|
|
|
|
favFreq = fm.selectedFavItemText();
|
|
assert.equal(favFreq, newFreq);
|
|
|
|
elem.tap();
|
|
assert.ok(fm.isFav());
|
|
|
|
favFreq = fm.selectedFavItemText();
|
|
assert.notEqual(favFreq, newFreq);
|
|
|
|
// remove the favourite.
|
|
fm.fav();
|
|
assert.ok(!fm.isFav());
|
|
|
|
// count number of favs. Should be 1.
|
|
elems = client.findElement(Fm.Selector.favList).
|
|
findElements(Fm.Selector.favItem);
|
|
assert.equal(elems.length, 1);
|
|
} catch(e) {
|
|
assert.ok(false, e.stack);
|
|
}
|
|
});
|
|
});
|
|
});
|