Only capitalize first letter of a scheme if a mapping has not been statically defined.

Update test cases.
This commit is contained in:
jcass 2016-05-08 10:52:37 +02:00
parent bbd9318e13
commit 5829368e40
3 changed files with 20 additions and 7 deletions

View File

@ -94,6 +94,11 @@ var uriClassList = [
['subsonic', 'fa-folder-open']
]
// TODO: It should be possible to retrieve a user-friendly name for a given Mopidy scheme dynamically by
// calling mopidy.library.browse() on the root dir:
// 1. each backend contained in the result will have a 'name' attribute that can be shown as-is in the UI.
// 2. the URI prefix of the backend result should === mopidy.getUriSchemes(), which can be used for the mapping.
// 3. only backends that cannot be 'browsed' (e.g. youtube) should have a static mapping defined here.
var uriHumanList = [
['spotify', 'Spotify'],
['spotifytunigo', 'Spotify browse'],
@ -510,7 +515,7 @@ function getMediaHuman (uri) {
return uriHumanList[i][1]
}
}
return uri
return ''
}
function isServiceUri (uri) {

View File

@ -337,7 +337,10 @@
})
for (var i = 0; i < schemesArray.length; i++) {
backendName = getMediaHuman(schemesArray[i])
backendName = backendName.charAt(0).toUpperCase() + backendName.slice(1)
if (!backendName) {
// No mapping defined, revert to just showing the scheme with first letter capitalized.
backendName = schemesArray[i].charAt(0).toUpperCase() + schemesArray[i].slice(1)
}
$('#selectSearchService').append(new Option(backendName, schemesArray[i]))
}
$('#selectSearchService').val(searchScheme)

View File

@ -17,17 +17,22 @@ describe('Library', function () {
$(document.body).append('<select id="selectSearchService"></select>')
$('#selectSearchService').selectmenu()
})
beforeEach(function () {
uriHumanList = [
['mockScheme1', 'mockUriHuman1'],
['mockScheme2', 'mockUriHuman2']
]
})
describe('#getSearchSchemes()', function () {
beforeEach(function () {
$(selectID).empty()
})
it('should add human-readable options for backend schemes', function () {
uriHumanList = [['mockScheme2', 'mockUriHuman2']]
library.getSearchSchemes([], mopidy)
assert.equal($(selectID).children().length, schemesArray.length + 1)
expect($(selectID).children(':eq(2)')).to.have.text('MockUriHuman2')
expect($(selectID).children(':eq(2)')).to.have.text('mockUriHuman2')
})
it('should get default value from cookie', function () {
@ -42,9 +47,9 @@ describe('Library', function () {
expect($(selectID + ' option:selected')).to.have.value('all')
})
it('should capitalize first character of backend schema', function () {
it('should capitalize first character of backend schema if no mapping is provided', function () {
library.getSearchSchemes([], mopidy)
expect($(selectID).children(':eq(1)')).to.have.text('MockScheme1')
expect($(selectID).children(':eq(3)')).to.have.text('MockScheme3')
})
it('should blacklist services that should not be searched', function () {