From 322526116ae4f679583e39de400283bd8b60afd9 Mon Sep 17 00:00:00 2001 From: Ben Francis Date: Thu, 5 Mar 2015 19:00:46 +0000 Subject: [PATCH] Bug 1137501 - Use short_name in installation dialog --- .../test/unit/manifest_helper_test.js | 28 +++++++++++++++++++ apps/system/js/app_install_manager.js | 16 +++++------ shared/js/manifest_helper.js | 11 ++++++-- .../test/unit/mocks/mock_manifest_helper.js | 6 ++++ 4 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 apps/sharedtest/test/unit/manifest_helper_test.js diff --git a/apps/sharedtest/test/unit/manifest_helper_test.js b/apps/sharedtest/test/unit/manifest_helper_test.js new file mode 100644 index 000000000000..326232aaeb2b --- /dev/null +++ b/apps/sharedtest/test/unit/manifest_helper_test.js @@ -0,0 +1,28 @@ +'use strict'; + +/* global ManifestHelper */ + +require('/shared/js/manifest_helper.js'); + +suite('Manifest Helper', function() { + + var manifest = { + 'name': 'Long Name' + }; + + var manifestWithShortName = { + 'name': 'Long Name', + 'short_name': 'Short Name' + }; + + test('displayName with short name', function() { + var helper = new ManifestHelper(manifestWithShortName); + assert.equal('Short Name', helper.displayName); + }); + + test('displayName with no short name', function() { + var helper = new ManifestHelper(manifest); + assert.equal('Long Name', helper.displayName); + }); + +}); diff --git a/apps/system/js/app_install_manager.js b/apps/system/js/app_install_manager.js index 058dc3bc470a..11407a6b5536 100644 --- a/apps/system/js/app_install_manager.js +++ b/apps/system/js/app_install_manager.js @@ -182,7 +182,7 @@ var AppInstallManager = { // Wrap manifest to get localized properties manifest = new ManifestHelper(manifest); - var msg = _('install-app', {'name': manifest.name}); + var msg = _('install-app', {'name': manifest.displayName}); this.msg.textContent = msg; if (manifest.developer) { @@ -245,7 +245,7 @@ var AppInstallManager = { } }; } else { - var nameObj = { name: manifest.name }; + var nameObj = { name: manifest.displayName }; dialogConfig = { type: 'remove', title: {id: 'delete-title', args: nameObj}, @@ -312,7 +312,7 @@ var AppInstallManager = { } var manifest = app.manifest || app.updateManifest; var appManifest = new ManifestHelper(manifest); - var name = appManifest.name; + var name = appManifest.displayName; var l10nId = appManifest.role === 'langpack' ? 'langpack-install-success2' : 'app-install-success'; this.systemBanner.show( @@ -343,7 +343,7 @@ var AppInstallManager = { var app = this.setupQueue[0]; var manifest = app.manifest; var appManifest = new ManifestHelper(manifest); - var appName = appManifest.name; + var appName = appManifest.displayName; var appDescription = appManifest.description; this.setupAppDescription.textContent = appDescription; navigator.mozL10n.setAttributes(this.setupAppName, @@ -389,7 +389,7 @@ var AppInstallManager = { var listHtml = ''; var imeListWrap = Template(this.imeListTemplate); for (var name in inputs) { - var displayIMEName = new ManifestHelper(inputs[name]).name; + var displayIMEName = new ManifestHelper(inputs[name]).displayName; listHtml += imeListWrap.interpolate({ imeName: name, displayName: displayIMEName @@ -430,7 +430,7 @@ var AppInstallManager = { var app = evt.application; var _ = navigator.mozL10n.get; var manifest = app.manifest || app.updateManifest; - var name = new ManifestHelper(manifest).name; + var name = new ManifestHelper(manifest).displayName; var errorName = app.downloadError.name; @@ -518,7 +518,7 @@ var AppInstallManager = { navigator.mozL10n.setAttributes( newNode.querySelector('.title-container'), 'downloadingAppMessage', - { appName: new ManifestHelper(manifest).name } + { appName: new ManifestHelper(manifest).displayName } ); var progressNode = newNode.querySelector('progress'); @@ -671,7 +671,7 @@ var AppInstallManager = { var title = dialog.querySelector('h1'); navigator.mozL10n.setAttributes(title, 'stopDownloading', { - app: new ManifestHelper(manifest).name + app: new ManifestHelper(manifest).displayName }); dialog.classList.add('visible'); diff --git a/shared/js/manifest_helper.js b/shared/js/manifest_helper.js index fcf25964ae75..683d331aed43 100644 --- a/shared/js/manifest_helper.js +++ b/shared/js/manifest_helper.js @@ -51,9 +51,16 @@ function ManifestHelper(manifest) { } } +/** + * Getter for display name (short_name if defined, otherwise name). + */ +Object.defineProperty(ManifestHelper.prototype, 'displayName', { + get: function displayName() { + return this.short_name || this.name; + } +}); + exports.ManifestHelper = ManifestHelper; // End outer IIFE }(window)); - - diff --git a/shared/test/unit/mocks/mock_manifest_helper.js b/shared/test/unit/mocks/mock_manifest_helper.js index c948b179e602..6ace04a27139 100644 --- a/shared/test/unit/mocks/mock_manifest_helper.js +++ b/shared/test/unit/mocks/mock_manifest_helper.js @@ -6,3 +6,9 @@ function MockManifestHelper(manifest) { this[prop] = manifest[prop]; } } + +Object.defineProperty(MockManifestHelper.prototype, 'displayName', { + get: function displayName() { + return this.name; + } +});