Genericize "Contact Us" page

Parameterize integration, support and announcement email addresses and contact
phone number, make static parameters flow through the system in a consistent
manner.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=136183813
This commit is contained in:
mmuller 2016-10-14 12:16:23 -07:00 committed by Ben McIlwain
parent 6a4088a8b6
commit 84bbb9a7c0
16 changed files with 177 additions and 65 deletions

View file

@ -99,14 +99,46 @@ public final class ConfigModule {
@Provides @Provides
@Config("productName") @Config("productName")
public static String provideProductName(RegistryEnvironment environment) { public static String provideProductName(RegistryEnvironment environment) {
switch (environment) { return "Nomulus";
case UNITTEST: }
case LOCAL:
return "Nomulus"; /**
default: * The e-mail address for questions about integrating with the registry. Used in the
// Change this to the name of your product. * "contact-us" section of the registrar console.
return "Google Registry"; */
} @Provides
@Config("integrationEmail")
public static String provideIntegrationEmail(RegistryEnvironment environment) {
return "integration@example.com";
}
/**
* The e-mail address for general support. Used in the "contact-us" section of the registrar
* console.
*/
@Provides
@Config("supportEmail")
public static String provideSupportEmail(RegistryEnvironment environment) {
return "support@example.com";
}
/**
* The "From" e-mail address for announcements. Used in the "contact-us" section of the
* registrar console.
*/
@Provides
@Config("announcementsEmail")
public static String provideAnnouncementsEmail(RegistryEnvironment environment) {
return "announcements@example.com";
}
/**
* The contact phone number. Used in the "contact-us" section of the registrar console.
*/
@Provides
@Config("supportPhoneNumber")
public static String provideSupportPhoneNumber(RegistryEnvironment environment) {
return "+1 (888) 555 0123";
} }
/** @see RegistryConfig#getZoneFilesBucket() */ /** @see RegistryConfig#getZoneFilesBucket() */

View file

@ -38,17 +38,19 @@ goog.forwardDeclare('registry.Component');
/** /**
* The Registrar Console. * The Registrar Console.
* @param {string} xsrfToken Populated by server-side soy template. * @param {!Object} params Parameters to be passed into templates. These are
* @param {string} clientId The logged in GAE user. * a combination of configurable parameters (e.g. phone number) and
* @param {string} productName The software name displayed on the UI. * user/session/registrar specific parameters. See
* registrar/Console.soy#.main for expected contents.
* @constructor * @constructor
* @extends {registry.Console} * @extends {registry.Console}
* @final * @final
*/ */
registry.registrar.Console = function(xsrfToken, clientId, productName) { registry.registrar.Console = function(params) {
registry.registrar.Console.base( registry.registrar.Console.base(
this, 'constructor', this, 'constructor',
new registry.registrar.EppSession(this, xsrfToken, clientId)); new registry.registrar.EppSession(this, params.xsrfToken,
params.clientId));
/** /**
* Component that's currently embedded in the page. * Component that's currently embedded in the page.
@ -62,15 +64,9 @@ registry.registrar.Console = function(xsrfToken, clientId, productName) {
this.history.setEnabled(true); this.history.setEnabled(true);
/** /**
* @type {!string} * @type {!Object}
* @private
*/ */
this.xsrfToken_ = xsrfToken; this.params = params;
/**
* @type {string}
*/
this.productName = productName;
/** /**
* Last active nav element. * Last active nav element.
@ -142,7 +138,7 @@ registry.registrar.Console.prototype.handleHashChange = function() {
componentCtor = this.pageMap['']; componentCtor = this.pageMap[''];
} }
var oldComponent = this.component_; var oldComponent = this.component_;
this.component_ = new componentCtor(this, this.xsrfToken_); this.component_ = new componentCtor(this, this.params.xsrfToken);
this.registerDisposable(this.component_); this.registerDisposable(this.component_);
this.component_.basePath = type; this.component_.basePath = type;
this.component_.bindToDom(id); this.component_.bindToDom(id);

View file

@ -16,6 +16,7 @@ goog.provide('registry.registrar.ContactUs');
goog.require('goog.Uri'); goog.require('goog.Uri');
goog.require('goog.dom'); goog.require('goog.dom');
goog.require('goog.object');
goog.require('registry.Resource'); goog.require('registry.Resource');
goog.require('registry.ResourceComponent'); goog.require('registry.ResourceComponent');
goog.require('registry.soy.registrar.console'); goog.require('registry.soy.registrar.console');
@ -44,6 +45,15 @@ registry.registrar.ContactUs = function(console, xsrfToken) {
goog.inherits(registry.registrar.ContactUs, registry.ResourceComponent); goog.inherits(registry.registrar.ContactUs, registry.ResourceComponent);
/** @override */
registry.registrar.ContactUs.prototype.renderItem = function(rspObj) {
// Augment the static parameters with the response object, we'll need both.
var params = goog.object.clone(this.console.params);
goog.object.extend(params, rspObj);
registry.registrar.ContactUs.base(this, 'renderItem', params);
};
/** @override */ /** @override */
registry.registrar.ContactUs.prototype.bindToDom = function(id) { registry.registrar.ContactUs.prototype.bindToDom = function(id) {
registry.registrar.ContactUs.base(this, 'bindToDom', ''); registry.registrar.ContactUs.base(this, 'bindToDom', '');

View file

@ -55,9 +55,7 @@ registry.registrar.Dashboard.prototype.bindToDom = function(id) {
goog.dom.removeChildren(goog.dom.getRequiredElement('reg-appbar')); goog.dom.removeChildren(goog.dom.getRequiredElement('reg-appbar'));
goog.soy.renderElement(goog.dom.getElement('reg-content'), goog.soy.renderElement(goog.dom.getElement('reg-content'),
registry.soy.registrar.console.dashboard, registry.soy.registrar.console.dashboard,
{ this.console.params);
productName: this.console.productName
});
goog.events.listen(goog.dom.getElement('rotate'), goog.events.listen(goog.dom.getElement('rotate'),
goog.events.EventType.CLICK, goog.events.EventType.CLICK,
goog.bind(this.rotate_, this)); goog.bind(this.rotate_, this));

View file

@ -29,8 +29,22 @@ goog.require('registry.registrar.Console');
* @param {string} xsrfToken populated by server-side soy template. * @param {string} xsrfToken populated by server-side soy template.
* @param {string} clientId The registrar clientId. * @param {string} clientId The registrar clientId.
* @param {string} productName the product name displayed by the UI. * @param {string} productName the product name displayed by the UI.
* @param {string} integrationEmail
* @param {string} supportEmail
* @param {string} announcementsEmail
* @param {string} supportPhoneNumber
* @export * @export
*/ */
registry.registrar.main = function(xsrfToken, clientId, productName) { registry.registrar.main = function(xsrfToken, clientId, productName,
new registry.registrar.Console(xsrfToken, clientId, productName); integrationEmail, supportEmail,
announcementsEmail, supportPhoneNumber) {
new registry.registrar.Console({
xsrfToken: xsrfToken,
clientId: clientId,
productName: productName,
integrationEmail: integrationEmail,
supportEmail: supportEmail,
announcementsEmail: announcementsEmail,
supportPhoneNumber: supportPhoneNumber
});
}; };

View file

@ -60,6 +60,10 @@ public final class ConsoleUiAction implements Runnable {
@Inject UserService userService; @Inject UserService userService;
@Inject @Config("logoFilename") String logoFilename; @Inject @Config("logoFilename") String logoFilename;
@Inject @Config("productName") String productName; @Inject @Config("productName") String productName;
@Inject @Config("integrationEmail") String integrationEmail;
@Inject @Config("supportEmail") String supportEmail;
@Inject @Config("announcementsEmail") String announcementsEmail;
@Inject @Config("supportPhoneNumber") String supportPhoneNumber;
@Inject @Config("registrarConsoleEnabled") boolean enabled; @Inject @Config("registrarConsoleEnabled") boolean enabled;
@Inject ConsoleUiAction() {} @Inject ConsoleUiAction() {}
@ -71,6 +75,10 @@ public final class ConsoleUiAction implements Runnable {
SoyMapData data = new SoyMapData(); SoyMapData data = new SoyMapData();
data.put("logoFilename", logoFilename); data.put("logoFilename", logoFilename);
data.put("productName", productName); data.put("productName", productName);
data.put("integrationEmail", integrationEmail);
data.put("supportEmail", supportEmail);
data.put("announcementsEmail", announcementsEmail);
data.put("supportPhoneNumber", supportPhoneNumber);
if (!enabled) { if (!enabled) {
response.setStatus(SC_SERVICE_UNAVAILABLE); response.setStatus(SC_SERVICE_UNAVAILABLE);
response.setPayload( response.setPayload(
@ -98,11 +106,12 @@ public final class ConsoleUiAction implements Runnable {
data.put("clientId", registrar.getClientId()); data.put("clientId", registrar.getClientId());
data.put("isAdmin", userService.isUserAdmin()); data.put("isAdmin", userService.isUserAdmin());
data.put("showPaymentLink", registrar.getBillingMethod() == Registrar.BillingMethod.BRAINTREE); data.put("showPaymentLink", registrar.getBillingMethod() == Registrar.BillingMethod.BRAINTREE);
response.setPayload(
TOFU_SUPPLIER.get() String payload = TOFU_SUPPLIER.get()
.newRenderer(ConsoleSoyInfo.MAIN) .newRenderer(ConsoleSoyInfo.MAIN)
.setCssRenamingMap(CSS_RENAMING_MAP_SUPPLIER.get()) .setCssRenamingMap(CSS_RENAMING_MAP_SUPPLIER.get())
.setData(data) .setData(data)
.render()); .render();
response.setPayload(payload);
} }
} }

View file

@ -28,6 +28,11 @@
{@param logoutUrl: string} /** Generated URL for logging out of Google. */ {@param logoutUrl: string} /** Generated URL for logging out of Google. */
{@param showPaymentLink: bool} {@param showPaymentLink: bool}
{@param productName: string} /** Name to display for this software product. */ {@param productName: string} /** Name to display for this software product. */
{@param integrationEmail: string}
{@param supportEmail: string}
{@param announcementsEmail: string}
{@param supportPhoneNumber: string}
{call registry.soy.console.header} {call registry.soy.console.header}
{param app: 'registrar' /} {param app: 'registrar' /}
{param subtitle: 'Registrar Console' /} {param subtitle: 'Registrar Console' /}
@ -61,7 +66,13 @@
{/switch} {/switch}
{if isNonnull(DEBUG)} {if isNonnull(DEBUG)}
<script> <script>
registry.registrar.main({$xsrfToken}, {$clientId}, {$productName}); registry.registrar.main({$xsrfToken},
{$clientId},
{$productName},
{$integrationEmail},
{$supportEmail},
{$announcementsEmail},
{$supportPhoneNumber});
</script> </script>
{/if} {/if}
{/template} {/template}
@ -197,6 +208,10 @@
/** Contact us. */ /** Contact us. */
{template .contactUs} {template .contactUs}
{@param? phonePasscode: string} {@param? phonePasscode: string}
{@param integrationEmail: string}
{@param supportEmail: string}
{@param announcementsEmail: string}
{@param supportPhoneNumber: string}
<div id="domain-registrar-contact-us" class="{css item}"> <div id="domain-registrar-contact-us" class="{css item}">
<h1>Contact us</h1> <h1>Contact us</h1>
<p>Our support team can assist you with any technical or operational <p>Our support team can assist you with any technical or operational
@ -209,21 +224,19 @@
</td> </td>
<td class="{css setting}"> <td class="{css setting}">
<p> <p>
<a href="mailto:registry-integration@google.com"> <a href="mailto:{$integrationEmail}">{$integrationEmail}</a><br>
registry-integration@google.com</a><br>
For help with OT&amp;E sandbox and certification, or new For help with OT&amp;E sandbox and certification, or new
technical requirements for any of our new TLD launches. technical requirements for any of our new TLD launches.
<p> <p>
<a href="mailto:registry-support@google.com"> <a href="mailto:{$supportEmail}">{$supportEmail}</a><br>
registry-support@google.com</a><br>
For general purpose questions once you are integrated For general purpose questions once you are integrated
with our registry system. If the issue is urgent, please put with our registry system. If the issue is urgent, please put
&quot;Urgent&quot; in the email title. &quot;Urgent&quot; in the email title.
<p class="{css description}">Note: You may receive occasional service <p class="{css description}">Note: You may receive occasional service
announcements announcements
via <strong>registrar-announcement@google.com</strong>. You via <strong>{$announcementsEmail}</strong>. You
will not be able to reply to those messages. will not be able to reply to those messages.
<tr><td colspan="2"><hr> <tr><td colspan="2"><hr>
@ -246,7 +259,7 @@
</span> </span>
<p>Call us at: <p>Call us at:
<p id="registry-phone"><a href="tel:+14049788419">+1 (404) 978 8419</a> <p id="registry-phone"><a href="tel:{$supportPhoneNumber}">{$supportPhoneNumber}</a>
</td> </td>
</table> </table>
</div> </div>

View file

@ -53,7 +53,11 @@ function setUp() {
clientId: test.testClientId, clientId: test.testClientId,
showPaymentLink: false, showPaymentLink: false,
logoFilename: 'logo.png', logoFilename: 'logo.png',
productName: 'Nomulus' productName: 'Nomulus',
integrationEmail: 'integration@example.com',
supportEmail: 'support@example.com',
announcementsEmail: 'announcement@example.com',
supportPhoneNumber: '+1 (888) 555 0123'
}); });
registry.registrar.ConsoleTestUtil.setup(test); registry.registrar.ConsoleTestUtil.setup(test);
var regNavlist = $('reg-navlist'); var regNavlist = $('reg-navlist');
@ -91,8 +95,8 @@ function testEppLogin() {
registry.registrar.ConsoleTestUtil.visit( registry.registrar.ConsoleTestUtil.visit(
test, { test, {
isEppLoggedIn: true, isEppLoggedIn: true,
testClientId: test.testClientId, clientId: test.testClientId,
testXsrfToken: test.testXsrfToken, xsrfToken: test.testXsrfToken,
productName: 'Foo Registry' productName: 'Foo Registry'
}, function() { }, function() {
test.sessionMock.login( test.sessionMock.login(
@ -122,7 +126,7 @@ function testShowLoginOrDash() {
function testNavToResources() { function testNavToResources() {
registry.registrar.ConsoleTestUtil.visit(test, { registry.registrar.ConsoleTestUtil.visit(test, {
path: 'resources', path: 'resources',
testXsrfToken: test.testXsrfToken xsrfToken: test.testXsrfToken
}); });
var xhr = goog.testing.net.XhrIo.getSendInstances().pop(); var xhr = goog.testing.net.XhrIo.getSendInstances().pop();
assertTrue(xhr.isActive()); assertTrue(xhr.isActive());
@ -143,7 +147,12 @@ function testNavToResources() {
function testNavToContactUs() { function testNavToContactUs() {
registry.registrar.ConsoleTestUtil.visit(test, { registry.registrar.ConsoleTestUtil.visit(test, {
path: 'contact-us', path: 'contact-us',
testXsrfToken: test.testXsrfToken xsrfToken: test.testXsrfToken,
productName: 'Domain Registry',
integrationEmail: 'integration@example.com',
supportEmail: 'support@example.com',
announcementsEmail: 'announcement@example.com',
supportPhoneNumber: '+1 (888) 555 0123'
}); });
var xhr = goog.testing.net.XhrIo.getSendInstances().pop(); var xhr = goog.testing.net.XhrIo.getSendInstances().pop();
assertTrue(xhr.isActive()); assertTrue(xhr.isActive());

View file

@ -59,8 +59,8 @@ registry.registrar.ConsoleTestUtil.visit = function(
test, opt_args, opt_moar) { test, opt_args, opt_moar) {
opt_args = opt_args || {}; opt_args = opt_args || {};
opt_args.path = opt_args.path || ''; opt_args.path = opt_args.path || '';
opt_args.testClientId = opt_args.testClientId || 'dummyRegistrarId'; opt_args.clientId = opt_args.clientId || 'dummyRegistrarId';
opt_args.testXsrfToken = opt_args.testXsrfToken || 'dummyXsrfToken'; opt_args.xsrfToken = opt_args.xsrfToken || 'dummyXsrfToken';
if (opt_args.isEppLoggedIn === undefined) { if (opt_args.isEppLoggedIn === undefined) {
opt_args.isEppLoggedIn = true; opt_args.isEppLoggedIn = true;
} }
@ -69,7 +69,7 @@ registry.registrar.ConsoleTestUtil.visit = function(
test.historyMock.getToken().$returns(opt_args.path).$anyTimes(); test.historyMock.getToken().$returns(opt_args.path).$anyTimes();
test.sessionMock.isEppLoggedIn().$returns(opt_args.isEppLoggedIn).$anyTimes(); test.sessionMock.isEppLoggedIn().$returns(opt_args.isEppLoggedIn).$anyTimes();
test.sessionMock.getClientId().$returns(opt_args.isEppLoggedIn ? test.sessionMock.getClientId().$returns(opt_args.isEppLoggedIn ?
opt_args.testClientId : null).$anyTimes(); opt_args.clientId : null).$anyTimes();
if (opt_args.rspXml) { if (opt_args.rspXml) {
test.sessionMock test.sessionMock
.send(goog.testing.mockmatchers.isString, .send(goog.testing.mockmatchers.isString,
@ -86,10 +86,7 @@ registry.registrar.ConsoleTestUtil.visit = function(
} }
test.mockControl.$replayAll(); test.mockControl.$replayAll();
/** @type {!registry.registrar.Console} */ /** @type {!registry.registrar.Console} */
test.console = new registry.registrar.Console( test.console = new registry.registrar.Console(opt_args);
opt_args.testXsrfToken,
opt_args.testClientId,
opt_args.productName);
// XXX: Should be triggered via event passing. // XXX: Should be triggered via event passing.
test.console.handleHashChange(); test.console.handleHashChange();
test.mockControl.$verifyAll(); test.mockControl.$verifyAll();

View file

@ -52,7 +52,11 @@ function setUp() {
clientId: test.testClientId, clientId: test.testClientId,
showPaymentLink: false, showPaymentLink: false,
logoFilename: 'logo.png', logoFilename: 'logo.png',
productName: 'Nomulus' productName: 'Nomulus',
integrationEmail: 'integration@google.com',
supportEmail: 'support@google.com',
announcementsEmail: 'announcements@google.com',
supportPhoneNumber: '123 456 7890',
}); });
stubs.setPath('goog.net.XhrIo', goog.testing.net.XhrIo); stubs.setPath('goog.net.XhrIo', goog.testing.net.XhrIo);
registry.registrar.ConsoleTestUtil.setup(test); registry.registrar.ConsoleTestUtil.setup(test);
@ -70,8 +74,8 @@ function tearDown() {
function testCollectionView() { function testCollectionView() {
registry.registrar.ConsoleTestUtil.visit(test, { registry.registrar.ConsoleTestUtil.visit(test, {
path: 'contact-settings', path: 'contact-settings',
testXsrfToken: test.testXsrfToken, xsrfToken: test.testXsrfToken,
testClientId: test.testClientId clientId: test.testClientId
}); });
registry.testing.assertReqMockRsp( registry.testing.assertReqMockRsp(
test.testXsrfToken, test.testXsrfToken,
@ -93,8 +97,8 @@ function testCollectionView() {
function testItemView() { function testItemView() {
registry.registrar.ConsoleTestUtil.visit(test, { registry.registrar.ConsoleTestUtil.visit(test, {
path: 'contact-settings/test@example.com', path: 'contact-settings/test@example.com',
testXsrfToken: test.testXsrfToken, xsrfToken: test.testXsrfToken,
testClientId: test.testClientId clientId: test.testClientId
}); });
registry.testing.assertReqMockRsp( registry.testing.assertReqMockRsp(
test.testXsrfToken, test.testXsrfToken,
@ -196,7 +200,7 @@ function testChangeContactTypes() {
function testOneOfManyUpdate() { function testOneOfManyUpdate() {
registry.registrar.ConsoleTestUtil.visit(test, { registry.registrar.ConsoleTestUtil.visit(test, {
path: 'contact-settings/test@example.com', path: 'contact-settings/test@example.com',
testXsrfToken: test.testXsrfToken, xsrfToken: test.testXsrfToken,
testClientId: test.testClientId testClientId: test.testClientId
}); });
var testContacts = [ var testContacts = [
@ -243,7 +247,7 @@ function testOneOfManyUpdate() {
function testDelete() { function testDelete() {
registry.registrar.ConsoleTestUtil.visit(test, { registry.registrar.ConsoleTestUtil.visit(test, {
path: 'contact-settings/test@example.com', path: 'contact-settings/test@example.com',
testXsrfToken: test.testXsrfToken, xsrfToken: test.testXsrfToken,
testClientId: test.testClientId testClientId: test.testClientId
}); });
var testContacts = [ var testContacts = [

View file

@ -43,7 +43,11 @@ function setUp() {
clientId: 'daddy', clientId: 'daddy',
showPaymentLink: false, showPaymentLink: false,
logoFilename: 'logo.png', logoFilename: 'logo.png',
productName: 'Nomulus' productName: 'Nomulus',
integrationEmail: 'integration@example.com',
supportEmail: 'support@example.com',
announcementsEmail: 'announcement@example.com',
supportPhoneNumber: '+1 (888) 555 0123'
}); });
registry.registrar.ConsoleTestUtil.setup(test); registry.registrar.ConsoleTestUtil.setup(test);
} }

View file

@ -49,7 +49,11 @@ function setUp() {
clientId: 'ignore', clientId: 'ignore',
showPaymentLink: false, showPaymentLink: false,
logoFilename: 'logo.png', logoFilename: 'logo.png',
productName: 'Nomulus' productName: 'Nomulus',
integrationEmail: 'integration@example.com',
supportEmail: 'support@example.com',
announcementsEmail: 'announcement@example.com',
supportPhoneNumber: '+1 (888) 555 0123'
}); });
stubs.setPath('goog.net.XhrIo', goog.testing.net.XhrIo); stubs.setPath('goog.net.XhrIo', goog.testing.net.XhrIo);
@ -59,7 +63,10 @@ function setUp() {
historyMock.setEnabled(true); historyMock.setEnabled(true);
mocks.$replayAll(); mocks.$replayAll();
registrarConsole = new registry.registrar.Console('☢', 'jartine'); registrarConsole = new registry.registrar.Console({
xsrfToken: '☢',
clientId: 'jartine'
});
mocks.$verifyAll(); mocks.$verifyAll();
} }

View file

@ -49,7 +49,11 @@ function setUp() {
clientId: 'ignore', clientId: 'ignore',
showPaymentLink: false, showPaymentLink: false,
logoFilename: 'logo.png', logoFilename: 'logo.png',
productName: 'Nomulus' productName: 'Nomulus',
integrationEmail: 'integration@example.com',
supportEmail: 'support@example.com',
announcementsEmail: 'announcement@example.com',
supportPhoneNumber: '+1 (888) 555 0123'
}); });
stubs.setPath('goog.net.XhrIo', goog.testing.net.XhrIo); stubs.setPath('goog.net.XhrIo', goog.testing.net.XhrIo);
@ -59,7 +63,10 @@ function setUp() {
historyMock.setEnabled(true); historyMock.setEnabled(true);
mocks.$replayAll(); mocks.$replayAll();
registrarConsole = new registry.registrar.Console('☢', 'jartine'); registrarConsole = new registry.registrar.Console({
xsrfToken: '☢',
clientId: 'jartine'
});
mocks.$verifyAll(); mocks.$verifyAll();
} }

View file

@ -57,7 +57,11 @@ function setUp() {
clientId: test.testClientId, clientId: test.testClientId,
showPaymentLink: false, showPaymentLink: false,
logoFilename: 'logo.png', logoFilename: 'logo.png',
productName: 'Nomulus' productName: 'Nomulus',
integrationEmail: 'integration@example.com',
supportEmail: 'support@example.com',
announcementsEmail: 'announcement@example.com',
supportPhoneNumber: '+1 (888) 555 0123'
}); });
stubs.setPath('goog.net.XhrIo', goog.testing.net.XhrIo); stubs.setPath('goog.net.XhrIo', goog.testing.net.XhrIo);
registry.registrar.ConsoleTestUtil.setup(test); registry.registrar.ConsoleTestUtil.setup(test);
@ -75,7 +79,7 @@ function tearDown() {
function testView() { function testView() {
registry.registrar.ConsoleTestUtil.visit(test, { registry.registrar.ConsoleTestUtil.visit(test, {
path: 'security-settings', path: 'security-settings',
testXsrfToken: test.testXsrfToken, xsrfToken: test.testXsrfToken,
testClientId: test.testClientId testClientId: test.testClientId
}); });
registry.testing.assertReqMockRsp( registry.testing.assertReqMockRsp(

View file

@ -51,7 +51,11 @@ function setUp() {
clientId: test.testClientId, clientId: test.testClientId,
showPaymentLink: false, showPaymentLink: false,
logoFilename: 'logo.png', logoFilename: 'logo.png',
productName: 'Nomulus' productName: 'Nomulus',
integrationEmail: 'integration@example.com',
supportEmail: 'support@example.com',
announcementsEmail: 'announcement@example.com',
supportPhoneNumber: '+1 (888) 555 0123'
}); });
stubs.setPath('goog.net.XhrIo', goog.testing.net.XhrIo); stubs.setPath('goog.net.XhrIo', goog.testing.net.XhrIo);
registry.registrar.ConsoleTestUtil.setup(test); registry.registrar.ConsoleTestUtil.setup(test);
@ -93,7 +97,7 @@ function createTestRegistrar() {
function testView() { function testView() {
registry.registrar.ConsoleTestUtil.visit(test, { registry.registrar.ConsoleTestUtil.visit(test, {
path: 'whois-settings', path: 'whois-settings',
testXsrfToken: test.testXsrfToken, xsrfToken: test.testXsrfToken,
testClientId: test.testClientId testClientId: test.testClientId
}); });
var testRegistrar = createTestRegistrar(); var testRegistrar = createTestRegistrar();

View file

@ -52,6 +52,10 @@ public class ConsoleUiActionTest {
action.enabled = true; action.enabled = true;
action.logoFilename = "logo.png"; action.logoFilename = "logo.png";
action.productName = "Nomulus"; action.productName = "Nomulus";
action.integrationEmail = "integration@example.com";
action.supportEmail = "support@example.com";
action.announcementsEmail = "announcements@example.com";
action.supportPhoneNumber = "1 (888) 555 0123";
action.response = response; action.response = response;
action.sessionUtils = sessionUtils; action.sessionUtils = sessionUtils;
action.userService = UserServiceFactory.getUserService(); action.userService = UserServiceFactory.getUserService();