Replace to(Upper|Lower)Case with Ascii.to$1Case

The presubmits are warning that toUpperCase() and toLowerCase() are locale-specific, and advise using Ascii.toUpperCase() and Ascii.toLowerCase() as a local-invariant alternative.
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=127583677
This commit is contained in:
mountford 2016-07-15 15:10:13 -07:00 committed by Ben McIlwain
parent d9596fa30c
commit e72491e59b
22 changed files with 62 additions and 38 deletions

View file

@ -15,6 +15,7 @@
package google.registry.config; package google.registry.config;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Ascii;
import javax.annotation.Nullable; import javax.annotation.Nullable;
/** Registry environments. */ /** Registry environments. */
@ -50,7 +51,7 @@ public enum RegistryEnvironment {
/** Returns environment configured by system property {@value #PROPERTY}. */ /** Returns environment configured by system property {@value #PROPERTY}. */
public static RegistryEnvironment get() { public static RegistryEnvironment get() {
return valueOf(System.getProperty(PROPERTY, UNITTEST.name()).toUpperCase()); return valueOf(Ascii.toUpperCase(System.getProperty(PROPERTY, UNITTEST.name())));
} }
/** /**

View file

@ -21,6 +21,7 @@ import static org.joda.time.DateTimeZone.UTC;
import com.google.appengine.api.datastore.Entity; import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Text; import com.google.appengine.api.datastore.Text;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Ascii;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
@ -140,7 +141,7 @@ public class DatastoreBackupInfo {
"Status: " + getStatus(), "Status: " + getStatus(),
"Started: " + startTime, "Started: " + startTime,
"Ended: " + completeTime.orNull(), "Ended: " + completeTime.orNull(),
"Duration: " + getRunningTime().toPeriod().toString().substring(2).toLowerCase(), "Duration: " + Ascii.toLowerCase(getRunningTime().toPeriod().toString().substring(2)),
"GCS: " + gcsFilename.orNull(), "GCS: " + gcsFilename.orNull(),
"Kinds: " + kinds, "Kinds: " + kinds,
""); "");

View file

@ -14,6 +14,7 @@
package google.registry.model.domain.fee; package google.registry.model.domain.fee;
import com.google.common.base.Ascii;
import com.google.common.base.CharMatcher; import com.google.common.base.CharMatcher;
import google.registry.model.ImmutableObject; import google.registry.model.ImmutableObject;
import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlAttribute;
@ -56,7 +57,7 @@ public class FeeCommandDescriptor extends ImmutableObject {
// Require the xml string to be lowercase. // Require the xml string to be lowercase.
if (command != null && CharMatcher.javaLowerCase().matchesAllOf(command)) { if (command != null && CharMatcher.javaLowerCase().matchesAllOf(command)) {
try { try {
return CommandName.valueOf(command.toUpperCase()); return CommandName.valueOf(Ascii.toUpperCase(command));
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
// Swallow this and return UNKNOWN below because there's no matching CommandName. // Swallow this and return UNKNOWN below because there's no matching CommandName.
} }

View file

@ -20,6 +20,7 @@ import static com.google.common.io.BaseEncoding.base16;
import static java.nio.charset.StandardCharsets.UTF_8; import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.MILLISECONDS;
import com.google.common.base.Ascii;
import com.google.common.base.CharMatcher; import com.google.common.base.CharMatcher;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
@ -101,7 +102,7 @@ public class LaunchNotice extends ImmutableObject {
String tcnId = getNoticeId().getTcnId(); String tcnId = getNoticeId().getTcnId();
checkArgument(tcnId.length() == 27); checkArgument(tcnId.length() == 27);
int checksum = Ints.fromByteArray(base16().decode(tcnId.substring(0, 8).toUpperCase())); int checksum = Ints.fromByteArray(base16().decode(Ascii.toUpperCase(tcnId.substring(0, 8))));
String noticeId = tcnId.substring(8); String noticeId = tcnId.substring(8);
checkArgument(CharMatcher.inRange('0', '9').matchesAllOf(noticeId)); checkArgument(CharMatcher.inRange('0', '9').matchesAllOf(noticeId));

View file

@ -14,6 +14,7 @@
package google.registry.rde; package google.registry.rde;
import com.google.common.base.Ascii;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.googlecode.objectify.Ref; import com.googlecode.objectify.Ref;
@ -280,7 +281,7 @@ final class DomainResourceToXjcConverter {
private static XjcDomainContactType convertDesignatedContact(DesignatedContact model) { private static XjcDomainContactType convertDesignatedContact(DesignatedContact model) {
XjcDomainContactType bean = new XjcDomainContactType(); XjcDomainContactType bean = new XjcDomainContactType();
ContactResource contact = model.getContactRef().get(); ContactResource contact = model.getContactRef().get();
bean.setType(XjcDomainContactAttrType.fromValue(model.getType().toString().toLowerCase())); bean.setType(XjcDomainContactAttrType.fromValue(Ascii.toLowerCase(model.getType().toString())));
bean.setValue(contact.getContactId()); bean.setValue(contact.getContactId());
return bean; return bean;
} }

View file

@ -18,6 +18,7 @@ import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkNotNull;
import com.google.common.base.Ascii;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.re2j.Pattern; import com.google.re2j.Pattern;
@ -218,7 +219,7 @@ public final class LordnLog implements Iterable<Entry<String, LordnLog.Result>>
// + <Status flag>, whether the LORDN file has been accepted for // + <Status flag>, whether the LORDN file has been accepted for
// processing by the TMDB. Possible values are "accepted" or // processing by the TMDB. Possible values are "accepted" or
// "rejected". // "rejected".
Status status = Status.valueOf(firstLine.get(4).toUpperCase()); Status status = Status.valueOf(Ascii.toUpperCase(firstLine.get(4)));
// + <Warning flag>, whether the LORDN Log has any warning result // + <Warning flag>, whether the LORDN Log has any warning result
// codes. Possible values are "no-warnings" or "warnings- // codes. Possible values are "no-warnings" or "warnings-
@ -229,8 +230,11 @@ public final class LordnLog implements Iterable<Entry<String, LordnLog.Result>>
// processed in the LORDN file. // processed in the LORDN file.
int dnLines = Integer.parseInt(firstLine.get(6)); int dnLines = Integer.parseInt(firstLine.get(6));
int actual = lines.size() - 2; int actual = lines.size() - 2;
checkArgument(dnLines == actual, checkArgument(
"Line 1: Number of entries (%d) differs from declaration (%d)", actual, dnLines); dnLines == actual,
"Line 1: Number of entries (%s) differs from declaration (%s)",
String.valueOf(actual),
String.valueOf(dnLines));
// Second line contains headers: roid,result-code // Second line contains headers: roid,result-code
checkArgument(lines.get(1).equals("roid,result-code"), checkArgument(lines.get(1).equals("roid,result-code"),
@ -244,8 +248,7 @@ public final class LordnLog implements Iterable<Entry<String, LordnLog.Result>>
"Line %d: Expected 2 elements, found %d", i + 1, currentLine.size())); "Line %d: Expected 2 elements, found %d", i + 1, currentLine.size()));
String roid = currentLine.get(0); String roid = currentLine.get(0);
int code = Integer.parseInt(currentLine.get(1)); int code = Integer.parseInt(currentLine.get(1));
Result result = checkNotNull(RESULTS.get(code), Result result = checkNotNull(RESULTS.get(code), "Line %s: Unknown result code: %s", i, code);
"Line %d: Unknown result code: %d", i, code);
builder.put(roid, result); builder.put(roid, result);
} }

View file

@ -26,6 +26,7 @@ import static google.registry.tools.CommandUtilities.addHeader;
import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters; import com.beust.jcommander.Parameters;
import com.google.common.base.Ascii;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
@ -134,7 +135,7 @@ final class AllocateDomainCommand extends MutatingEppToolCommand {
ImmutableMap.Builder<String, String> contactsMapBuilder = new ImmutableMap.Builder<>(); ImmutableMap.Builder<String, String> contactsMapBuilder = new ImmutableMap.Builder<>();
for (DesignatedContact contact : application.getContacts()) { for (DesignatedContact contact : application.getContacts()) {
contactsMapBuilder.put( contactsMapBuilder.put(
contact.getType().toString().toLowerCase(), Ascii.toLowerCase(contact.getType().toString()),
contact.getContactRef().get().getForeignKey()); contact.getContactRef().get().getForeignKey());
} }
LaunchNotice launchNotice = application.getLaunchNotice(); LaunchNotice launchNotice = application.getLaunchNotice();

View file

@ -14,6 +14,7 @@
package google.registry.tools; package google.registry.tools;
import com.google.common.base.Ascii;
import com.google.common.base.Strings; import com.google.common.base.Strings;
/** Container class for static utility methods. */ /** Container class for static utility methods. */
@ -25,6 +26,6 @@ class CommandUtilities {
/** Prompts for yes/no input using promptText, defaulting to no. */ /** Prompts for yes/no input using promptText, defaulting to no. */
static boolean promptForYes(String promptText) { static boolean promptForYes(String promptText) {
return System.console().readLine(promptText + " (y/N): ").toUpperCase().startsWith("Y"); return Ascii.toUpperCase(System.console().readLine(promptText + " (y/N): ")).startsWith("Y");
} }
} }

View file

@ -19,6 +19,7 @@ import static google.registry.util.DomainNameUtils.canonicalizeDomainName;
import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters; import com.beust.jcommander.Parameters;
import com.google.common.base.Ascii;
import google.registry.tools.Command.GtechCommand; import google.registry.tools.Command.GtechCommand;
import google.registry.util.Idn; import google.registry.util.Idn;
import java.io.IOException; import java.io.IOException;
@ -37,7 +38,7 @@ final class ConvertIdnCommand implements Command, GtechCommand {
public void run() throws IOException { public void run() throws IOException {
for (String label : mainParameters) { for (String label : mainParameters) {
if (label.startsWith(ACE_PREFIX)) { if (label.startsWith(ACE_PREFIX)) {
System.out.println(Idn.toUnicode(label.toLowerCase())); System.out.println(Idn.toUnicode(Ascii.toLowerCase(label)));
} else { } else {
System.out.println(canonicalizeDomainName(label)); System.out.println(canonicalizeDomainName(label));
} }

View file

@ -18,6 +18,7 @@ import static google.registry.util.PreconditionsUtils.checkArgumentNotNull;
import com.beust.jcommander.Parameter; import com.beust.jcommander.Parameter;
import com.beust.jcommander.Parameters; import com.beust.jcommander.Parameters;
import com.google.common.base.Ascii;
import com.google.template.soy.data.SoyMapData; import com.google.template.soy.data.SoyMapData;
import google.registry.model.domain.launch.LaunchPhase; import google.registry.model.domain.launch.LaunchPhase;
import google.registry.tools.Command.GtechCommand; import google.registry.tools.Command.GtechCommand;
@ -53,8 +54,8 @@ final class DomainApplicationInfoCommand extends EppToolCommand implements Gtech
@Override @Override
void initEppToolCommand() { void initEppToolCommand() {
LaunchPhase launchPhase = LaunchPhase launchPhase = checkArgumentNotNull(
checkArgumentNotNull(LaunchPhase.fromValue(phase.toLowerCase()), "Illegal launch phase."); LaunchPhase.fromValue(Ascii.toLowerCase(phase)), "Illegal launch phase.");
setSoyTemplate( setSoyTemplate(
DomainApplicationInfoSoyInfo.getInstance(), DomainApplicationInfoSoyInfo.getInstance(),

View file

@ -17,6 +17,7 @@ package google.registry.tools;
import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Preconditions.checkState;
import com.google.common.base.Ascii;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import google.registry.config.RegistryEnvironment; import google.registry.config.RegistryEnvironment;
@ -61,7 +62,7 @@ enum RegistryToolEnvironment {
* @see #get() * @see #get()
*/ */
static RegistryToolEnvironment parseFromArgs(String[] args) { static RegistryToolEnvironment parseFromArgs(String[] args) {
return valueOf(getFlagValue(args, FLAGS).toUpperCase()); return valueOf(Ascii.toUpperCase(getFlagValue(args, FLAGS)));
} }
/** /**

View file

@ -23,6 +23,7 @@ import static google.registry.util.CollectionUtils.isNullOrEmpty;
import static google.registry.util.DomainNameUtils.ACE_PREFIX; import static google.registry.util.DomainNameUtils.ACE_PREFIX;
import static java.util.Arrays.asList; import static java.util.Arrays.asList;
import com.google.common.base.Ascii;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
@ -250,7 +251,7 @@ public class VerifyOteAction implements Runnable, JsonAction {
/** Returns a more human-readable translation of the enum constant. */ /** Returns a more human-readable translation of the enum constant. */
String description() { String description() {
return this.name().replace('_', ' ').toLowerCase(); return Ascii.toLowerCase(this.name().replace('_', ' '));
} }
/** An {@link EppInput} might match multiple actions, so check if this action matches. */ /** An {@link EppInput} might match multiple actions, so check if this action matches. */

View file

@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Preconditions.checkState;
import com.google.common.base.Ascii;
import com.google.common.base.CharMatcher; import com.google.common.base.CharMatcher;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Functions; import com.google.common.base.Functions;
@ -30,6 +31,7 @@ import com.google.common.collect.Range;
import com.google.re2j.Pattern; import com.google.re2j.Pattern;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import javax.annotation.Detainted; import javax.annotation.Detainted;
@ -560,7 +562,7 @@ public final class FormField<I, O> {
@Nullable @Nullable
@Override @Override
public String apply(@Nullable String input) { public String apply(@Nullable String input) {
return input != null ? input.toUpperCase() : null; return input != null ? input.toUpperCase(Locale.ENGLISH) : null;
}}; }};
private static final Function<String, String> LOWERCASE_FUNCTION = private static final Function<String, String> LOWERCASE_FUNCTION =
@ -568,7 +570,7 @@ public final class FormField<I, O> {
@Nullable @Nullable
@Override @Override
public String apply(@Nullable String input) { public String apply(@Nullable String input) {
return input != null ? input.toLowerCase() : null; return input != null ? input.toLowerCase(Locale.ENGLISH) : null;
}}; }};
private static final Function<Object, Object> REQUIRED_FUNCTION = private static final Function<Object, Object> REQUIRED_FUNCTION =
@ -587,8 +589,8 @@ public final class FormField<I, O> {
@Nullable @Nullable
@Override @Override
public Object apply(@Nullable Object input) { public Object apply(@Nullable Object input) {
return input instanceof CharSequence && ((CharSequence) input).length() == 0 return ((input instanceof CharSequence) && (((CharSequence) input).length() == 0))
|| input instanceof Collection && ((Collection<?>) input).isEmpty() || ((input instanceof Collection) && ((Collection<?>) input).isEmpty())
? null : input; ? null : input;
}}; }};
@ -709,7 +711,7 @@ public final class FormField<I, O> {
@Override @Override
public C apply(@Nullable O input) { public C apply(@Nullable O input) {
try { try {
return input != null ? Enum.valueOf(enumClass, ((String) input).toUpperCase()) : null; return input != null ? Enum.valueOf(enumClass, Ascii.toUpperCase((String) input)) : null;
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
throw new FormFieldException( throw new FormFieldException(
String.format("Enum %s does not contain '%s'", enumClass.getSimpleName(), input)); String.format("Enum %s does not contain '%s'", enumClass.getSimpleName(), input));

View file

@ -19,6 +19,7 @@ import static com.google.common.collect.Range.atMost;
import static com.google.common.collect.Range.closed; import static com.google.common.collect.Range.closed;
import static google.registry.util.DomainNameUtils.canonicalizeDomainName; import static google.registry.util.DomainNameUtils.canonicalizeDomainName;
import com.google.common.base.Ascii;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
@ -354,7 +355,7 @@ public final class RegistrarFormFields {
} }
for (String state : stateField.extractUntyped(args).asSet()) { for (String state : stateField.extractUntyped(args).asSet()) {
if ("US".equals(countryCode)) { if ("US".equals(countryCode)) {
state = state.toUpperCase(); state = Ascii.toUpperCase(state);
if (!StateCode.US_MAP.containsKey(state)) { if (!StateCode.US_MAP.containsKey(state)) {
throw new FormFieldException(stateField, "Unknown US state code."); throw new FormFieldException(stateField, "Unknown US state code.");
} }

View file

@ -57,8 +57,8 @@ public final class Idn {
} }
/** /**
* Translates a string from Unicode to ASCII Compatible Encoding (ACE), as defined by the ToASCII * Translates a string from ASCII Compatible Encoding (ACE) to Unicode, as defined by the
* operation of <a href="http://www.ietf.org/rfc/rfc3490.txt">RFC 3490</a>. * ToUnicode operation of <a href="http://www.ietf.org/rfc/rfc3490.txt">RFC 3490</a>.
* *
* <p>This method always uses <a href="http://unicode.org/reports/tr46/">UTS46 transitional * <p>This method always uses <a href="http://unicode.org/reports/tr46/">UTS46 transitional
* processing</a>. * processing</a>.

View file

@ -16,11 +16,13 @@ package google.registry.util;
import static com.google.common.base.CharMatcher.javaLetterOrDigit; import static com.google.common.base.CharMatcher.javaLetterOrDigit;
import com.google.common.base.Ascii;
/** Utilities for working with {@code Registrar} objects. */ /** Utilities for working with {@code Registrar} objects. */
public class RegistrarUtils { public class RegistrarUtils {
/** Strip out anything that isn't a letter or digit, and lowercase. */ /** Strip out anything that isn't a letter or digit, and lowercase. */
public static String normalizeRegistrarName(String name) { public static String normalizeRegistrarName(String name) {
return javaLetterOrDigit().retainFrom(name).toLowerCase(); return Ascii.toLowerCase(javaLetterOrDigit().retainFrom(name));
} }
/** /**
@ -29,6 +31,6 @@ public class RegistrarUtils {
* in Datastore, and is suitable for use in email addresses. * in Datastore, and is suitable for use in email addresses.
*/ */
public static String normalizeClientId(String clientId) { public static String normalizeClientId(String clientId) {
return clientId.toLowerCase().replaceAll("[^a-z0-9\\-]", ""); return Ascii.toLowerCase(clientId).replaceAll("[^a-z0-9\\-]", "");
} }
} }

View file

@ -26,6 +26,7 @@ import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.appengine.api.urlfetch.HTTPHeader; import com.google.appengine.api.urlfetch.HTTPHeader;
import com.google.appengine.api.urlfetch.HTTPRequest; import com.google.appengine.api.urlfetch.HTTPRequest;
import com.google.appengine.api.urlfetch.HTTPResponse; import com.google.appengine.api.urlfetch.HTTPResponse;
import com.google.common.base.Ascii;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import com.google.common.net.MediaType; import com.google.common.net.MediaType;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
@ -49,9 +50,9 @@ public final class UrlFetchUtils {
} }
private static Optional<String> getHeaderFirstInternal(Iterable<HTTPHeader> hdrs, String name) { private static Optional<String> getHeaderFirstInternal(Iterable<HTTPHeader> hdrs, String name) {
name = name.toLowerCase(); name = Ascii.toLowerCase(name);
for (HTTPHeader header : hdrs) { for (HTTPHeader header : hdrs) {
if (header.getName().toLowerCase().equals(name)) { if (Ascii.toLowerCase(header.getName()).equals(name)) {
return Optional.of(header.getValue()); return Optional.of(header.getValue());
} }
} }

View file

@ -259,12 +259,12 @@ public class DnsUpdateWriterTest {
Update update, String resourceName, int recordType, String... resourceData) { Update update, String resourceName, int recordType, String... resourceData) {
ArrayList<String> expectedData = new ArrayList<>(); ArrayList<String> expectedData = new ArrayList<>();
for (String resourceDatum : resourceData) { for (String resourceDatum : resourceData) {
expectedData.add(resourceDatum.toLowerCase()); expectedData.add(resourceDatum);
} }
ArrayList<String> actualData = new ArrayList<>(); ArrayList<String> actualData = new ArrayList<>();
for (Record record : findUpdateRecords(update, resourceName, recordType)) { for (Record record : findUpdateRecords(update, resourceName, recordType)) {
actualData.add(record.rdataToString().toLowerCase()); actualData.add(record.rdataToString());
} }
assertThat(actualData).containsExactlyElementsIn(expectedData); assertThat(actualData).containsExactlyElementsIn(expectedData);
} }

View file

@ -26,6 +26,7 @@ import static google.registry.testing.DatastoreHelper.persistResource;
import static google.registry.testing.GenericEppResourceSubject.assertAboutEppResources; import static google.registry.testing.GenericEppResourceSubject.assertAboutEppResources;
import static google.registry.util.DateTimeUtils.END_OF_TIME; import static google.registry.util.DateTimeUtils.END_OF_TIME;
import com.google.common.base.Ascii;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.googlecode.objectify.Ref; import com.googlecode.objectify.Ref;
import google.registry.flows.Flow; import google.registry.flows.Flow;
@ -113,7 +114,7 @@ public class DomainTransferFlowTestCase<F extends Flow, R extends EppResource>
createTld(tld); createTld(tld);
contact = persistActiveContact("jd1234"); contact = persistActiveContact("jd1234");
domain = new DomainResource.Builder() domain = new DomainResource.Builder()
.setRepoId("1-".concat(tld.toUpperCase())) .setRepoId("1-".concat(Ascii.toUpperCase(tld)))
.setFullyQualifiedDomainName(label + "." + tld) .setFullyQualifiedDomainName(label + "." + tld)
.setCurrentSponsorClientId("TheRegistrar") .setCurrentSponsorClientId("TheRegistrar")
.setCreationClientId("TheRegistrar") .setCreationClientId("TheRegistrar")
@ -157,7 +158,7 @@ public class DomainTransferFlowTestCase<F extends Flow, R extends EppResource>
.build()); .build());
subordinateHost = persistResource( subordinateHost = persistResource(
new HostResource.Builder() new HostResource.Builder()
.setRepoId("2-".concat(tld.toUpperCase())) .setRepoId("2-".concat(Ascii.toUpperCase(tld)))
.setFullyQualifiedHostName("ns1." + label + "." + tld) .setFullyQualifiedHostName("ns1." + label + "." + tld)
.setCurrentSponsorClientId("TheRegistrar") .setCurrentSponsorClientId("TheRegistrar")
.setCreationClientId("TheRegistrar") .setCreationClientId("TheRegistrar")

View file

@ -38,6 +38,7 @@ import com.google.appengine.api.urlfetch.URLFetchService;
import com.google.appengine.tools.cloudstorage.GcsFilename; import com.google.appengine.tools.cloudstorage.GcsFilename;
import com.google.appengine.tools.cloudstorage.GcsService; import com.google.appengine.tools.cloudstorage.GcsService;
import com.google.appengine.tools.cloudstorage.GcsServiceFactory; import com.google.appengine.tools.cloudstorage.GcsServiceFactory;
import com.google.common.base.Ascii;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.io.ByteSource; import com.google.common.io.ByteSource;
import google.registry.config.RegistryConfig; import google.registry.config.RegistryConfig;
@ -194,7 +195,7 @@ public class RdeReportActionTest {
private static ImmutableMap<String, String> mapifyHeaders(Iterable<HTTPHeader> headers) { private static ImmutableMap<String, String> mapifyHeaders(Iterable<HTTPHeader> headers) {
ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<>(); ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<>();
for (HTTPHeader header : headers) { for (HTTPHeader header : headers) {
builder.put(header.getName().replace('-', '_').toUpperCase(), header.getValue()); builder.put(Ascii.toUpperCase(header.getName().replace('-', '_')), header.getValue());
} }
return builder.build(); return builder.build();
} }

View file

@ -36,6 +36,7 @@ import static google.registry.util.ResourceUtils.readResourceUtf8;
import static java.util.Arrays.asList; import static java.util.Arrays.asList;
import static org.joda.money.CurrencyUnit.USD; import static org.joda.money.CurrencyUnit.USD;
import com.google.common.base.Ascii;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
@ -360,7 +361,7 @@ public class DatastoreHelper {
} }
public static void createTld(String tld, ImmutableSortedMap<DateTime, TldState> tldStates) { public static void createTld(String tld, ImmutableSortedMap<DateTime, TldState> tldStates) {
createTld(tld, tld.replaceFirst(ACE_PREFIX_REGEX, "").toUpperCase(), tldStates); createTld(tld, Ascii.toUpperCase(tld.replaceFirst(ACE_PREFIX_REGEX, "")), tldStates);
} }
public static void createTld( public static void createTld(

View file

@ -30,6 +30,7 @@ import static java.util.Arrays.asList;
import com.google.appengine.api.taskqueue.dev.QueueStateInfo; import com.google.appengine.api.taskqueue.dev.QueueStateInfo;
import com.google.appengine.api.taskqueue.dev.QueueStateInfo.HeaderWrapper; import com.google.appengine.api.taskqueue.dev.QueueStateInfo.HeaderWrapper;
import com.google.appengine.api.taskqueue.dev.QueueStateInfo.TaskStateInfo; import com.google.appengine.api.taskqueue.dev.QueueStateInfo.TaskStateInfo;
import com.google.common.base.Ascii;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
@ -94,7 +95,7 @@ public class TaskQueueHelper {
public TaskMatcher header(String name, String value) { public TaskMatcher header(String name, String value) {
// Lowercase for case-insensitive comparison. // Lowercase for case-insensitive comparison.
expected.headers.put(name.toLowerCase(), value); expected.headers.put(Ascii.toLowerCase(name), value);
return this; return this;
} }
@ -310,7 +311,7 @@ public class TaskQueueHelper {
for (HeaderWrapper header : info.getHeaders()) { for (HeaderWrapper header : info.getHeaders()) {
// Lowercase header name for comparison since HTTP // Lowercase header name for comparison since HTTP
// header names are case-insensitive. // header names are case-insensitive.
headerBuilder.put(header.getKey().toLowerCase(), header.getValue()); headerBuilder.put(Ascii.toLowerCase(header.getKey()), header.getValue());
} }
this.headers = headerBuilder.build(); this.headers = headerBuilder.build();
ImmutableMultimap.Builder<String, String> inputParams = new ImmutableMultimap.Builder<>(); ImmutableMultimap.Builder<String, String> inputParams = new ImmutableMultimap.Builder<>();
@ -319,7 +320,7 @@ public class TaskQueueHelper {
inputParams.putAll(UriParameters.parse(query)); inputParams.putAll(UriParameters.parse(query));
} }
if (headers.containsEntry( if (headers.containsEntry(
HttpHeaders.CONTENT_TYPE.toLowerCase(), MediaType.FORM_DATA.toString())) { Ascii.toLowerCase(HttpHeaders.CONTENT_TYPE), MediaType.FORM_DATA.toString())) {
inputParams.putAll(UriParameters.parse(info.getBody())); inputParams.putAll(UriParameters.parse(info.getBody()));
} }
this.params = inputParams.build(); this.params = inputParams.build();