diff --git a/apps/search/js/providers/places.js b/apps/search/js/providers/places.js index edae35600dc1..c2525a6a5fe2 100644 --- a/apps/search/js/providers/places.js +++ b/apps/search/js/providers/places.js @@ -250,7 +250,7 @@ function formatTopResult(result) { var div = document.createElement('div'); var span = document.createElement('span'); - span.textContent = result.title; + span.textContent = result.title || result.url; div.dataset.url = result.url; div.classList.add('top-site'); div.appendChild(span); diff --git a/apps/search/test/marionette/browser_test.js b/apps/search/test/marionette/browser_test.js index d3c99988441f..14f4642108b4 100644 --- a/apps/search/test/marionette/browser_test.js +++ b/apps/search/test/marionette/browser_test.js @@ -4,6 +4,8 @@ var Home2 = require('../../../verticalhome/test/marionette/lib/home2'); var System = require('../../../system/test/marionette/lib/system'); var Search = require('./lib/search'); +var assert = require('chai').assert; + marionette('Browser test', function() { var client = marionette.client(Home2.clientOptions); @@ -56,4 +58,28 @@ marionette('Browser test', function() { }); }); + test('Ensure fallback to url when no place title', function() { + + client.executeAsyncScript(function() { + var settings = window.wrappedJSObject.navigator.mozSettings; + var result = settings.createLock().set({ + 'operatorResources.data.topsites': { + 'topSites': [{url: 'http://example1.org'}] + } + }); + result.onsuccess = function() { + marionetteScriptFinished(); + }; + }); + + client.apps.launch(Search.URL); + client.apps.switchToApp(Search.URL); + + client.waitFor(function() { + return search.getTopSites().length == 1; + }); + + var topSite = search.getTopSites()[0]; + assert.equal(topSite.text(), 'http://example1.org'); + }); });