Make Address an AutoValue
Address is a data-holder for an RFC email address. Making it an AutoValue signifies to callers that it's immutable, hence thread-safe. Change-Id: I9deb50145d10feb93eca540701944cea6428f9d1
This commit is contained in:
@@ -1277,7 +1277,7 @@ public abstract class AbstractDaemonTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void assertNotifyTo(String expectedEmail, String expectedFullname) {
|
protected void assertNotifyTo(String expectedEmail, String expectedFullname) {
|
||||||
Address expectedAddress = new Address(expectedFullname, expectedEmail);
|
Address expectedAddress = Address.create(expectedFullname, expectedEmail);
|
||||||
assertThat(sender.getMessages()).hasSize(1);
|
assertThat(sender.getMessages()).hasSize(1);
|
||||||
Message m = sender.getMessages().get(0);
|
Message m = sender.getMessages().get(0);
|
||||||
assertThat(m.rcpt()).containsExactly(expectedAddress);
|
assertThat(m.rcpt()).containsExactly(expectedAddress);
|
||||||
@@ -1291,7 +1291,7 @@ public abstract class AbstractDaemonTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void assertNotifyCc(String expectedEmail, String expectedFullname) {
|
protected void assertNotifyCc(String expectedEmail, String expectedFullname) {
|
||||||
Address expectedAddress = new Address(expectedFullname, expectedEmail);
|
Address expectedAddress = Address.create(expectedFullname, expectedEmail);
|
||||||
assertNotifyCc(expectedAddress);
|
assertNotifyCc(expectedAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1315,7 +1315,7 @@ public abstract class AbstractDaemonTest {
|
|||||||
protected void assertNotifyBcc(String expectedEmail, String expectedFullName) {
|
protected void assertNotifyBcc(String expectedEmail, String expectedFullName) {
|
||||||
assertThat(sender.getMessages()).hasSize(1);
|
assertThat(sender.getMessages()).hasSize(1);
|
||||||
Message m = sender.getMessages().get(0);
|
Message m = sender.getMessages().get(0);
|
||||||
assertThat(m.rcpt()).containsExactly(new Address(expectedFullName, expectedEmail));
|
assertThat(m.rcpt()).containsExactly(Address.create(expectedFullName, expectedEmail));
|
||||||
assertThat(m.headers().get("To").isEmpty()).isTrue();
|
assertThat(m.headers().get("To").isEmpty()).isTrue();
|
||||||
assertThat(m.headers().get("Cc").isEmpty()).isTrue();
|
assertThat(m.headers().get("Cc").isEmpty()).isTrue();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ public abstract class AbstractNotificationTest extends AbstractDaemonTest {
|
|||||||
recipients.put(
|
recipients.put(
|
||||||
BCC,
|
BCC,
|
||||||
message.rcpt().stream()
|
message.rcpt().stream()
|
||||||
.map(Address::getEmail)
|
.map(Address::email)
|
||||||
.filter(e -> !recipients.get(TO).contains(e) && !recipients.get(CC).contains(e))
|
.filter(e -> !recipients.get(TO).contains(e) && !recipients.get(CC).contains(e))
|
||||||
.collect(toList()));
|
.collect(toList()));
|
||||||
this.users = users;
|
this.users = users;
|
||||||
@@ -174,7 +174,7 @@ public abstract class AbstractNotificationTest extends AbstractDaemonTest {
|
|||||||
}
|
}
|
||||||
Truth.assertThat(header).isInstanceOf(AddressList.class);
|
Truth.assertThat(header).isInstanceOf(AddressList.class);
|
||||||
AddressList addrList = (AddressList) header;
|
AddressList addrList = (AddressList) header;
|
||||||
return addrList.getAddressList().stream().map(Address::getEmail).collect(toList());
|
return addrList.getAddressList().stream().map(Address::email).collect(toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public FakeEmailSenderSubject to(String... emails) {
|
public FakeEmailSenderSubject to(String... emails) {
|
||||||
|
|||||||
@@ -92,6 +92,6 @@ public abstract class TestAccount {
|
|||||||
// emailAddress().
|
// emailAddress().
|
||||||
// * Address#equals only considers email, not name, whereas TestAccount#equals should include
|
// * Address#equals only considers email, not name, whereas TestAccount#equals should include
|
||||||
// name.
|
// name.
|
||||||
return new Address(fullName(), email());
|
return Address.create(fullName(), email());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,10 +14,12 @@
|
|||||||
|
|
||||||
package com.google.gerrit.mail;
|
package com.google.gerrit.mail;
|
||||||
|
|
||||||
|
import com.google.auto.value.AutoValue;
|
||||||
import com.google.gerrit.common.Nullable;
|
import com.google.gerrit.common.Nullable;
|
||||||
|
|
||||||
/** Represents an address (name + email) in an email message. */
|
/** Represents an address (name + email) in an email message. */
|
||||||
public class Address {
|
@AutoValue
|
||||||
|
public abstract class Address {
|
||||||
public static Address parse(String in) {
|
public static Address parse(String in) {
|
||||||
final int lt = in.indexOf('<');
|
final int lt = in.indexOf('<');
|
||||||
final int gt = in.indexOf('>');
|
final int gt = in.indexOf('>');
|
||||||
@@ -33,11 +35,11 @@ public class Address {
|
|||||||
if (name.endsWith("\"")) {
|
if (name.endsWith("\"")) {
|
||||||
nameEnd--;
|
nameEnd--;
|
||||||
}
|
}
|
||||||
return new Address(name.length() > 0 ? name.substring(nameStart, nameEnd) : null, email);
|
return Address.create(name.length() > 0 ? name.substring(nameStart, nameEnd) : null, email);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lt < 0 && gt < 0 && 0 < at && at < in.length() - 1) {
|
if (lt < 0 && gt < 0 && 0 < at && at < in.length() - 1) {
|
||||||
return new Address(in);
|
return Address.create(in);
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new IllegalArgumentException("Invalid email address: " + in);
|
throw new IllegalArgumentException("Invalid email address: " + in);
|
||||||
@@ -51,60 +53,52 @@ public class Address {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable private final String name;
|
public static Address create(String email) {
|
||||||
private final String email;
|
return create(null, email);
|
||||||
|
|
||||||
public Address(String email) {
|
|
||||||
this(null, email);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Address(String name, String email) {
|
public static Address create(String name, String email) {
|
||||||
this.name = name;
|
return new AutoValue_Address(name, email);
|
||||||
this.email = email;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public String getName() {
|
public abstract String name();
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEmail() {
|
public abstract String email();
|
||||||
return email;
|
|
||||||
|
@Override
|
||||||
|
public final int hashCode() {
|
||||||
|
return email().hashCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public final boolean equals(Object other) {
|
||||||
return email.hashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object other) {
|
|
||||||
if (other instanceof Address) {
|
if (other instanceof Address) {
|
||||||
return email.equals(((Address) other).email);
|
return email().equals(((Address) other).email());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public final String toString() {
|
||||||
return toHeaderString();
|
return toHeaderString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toHeaderString() {
|
public String toHeaderString() {
|
||||||
if (name != null) {
|
if (name() != null) {
|
||||||
return quotedPhrase(name) + " <" + email + ">";
|
return quotedPhrase(name()) + " <" + email() + ">";
|
||||||
} else if (isSimple()) {
|
} else if (isSimple()) {
|
||||||
return email;
|
return email();
|
||||||
}
|
}
|
||||||
return "<" + email + ">";
|
return "<" + email() + ">";
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final String MUST_QUOTE_EMAIL = "()<>,;:\\\"[]";
|
private static final String MUST_QUOTE_EMAIL = "()<>,;:\\\"[]";
|
||||||
private static final String MUST_QUOTE_NAME = MUST_QUOTE_EMAIL + "@.";
|
private static final String MUST_QUOTE_NAME = MUST_QUOTE_EMAIL + "@.";
|
||||||
|
|
||||||
private boolean isSimple() {
|
private boolean isSimple() {
|
||||||
for (int i = 0; i < email.length(); i++) {
|
for (int i = 0; i < email().length(); i++) {
|
||||||
final char c = email.charAt(i);
|
final char c = email().charAt(i);
|
||||||
if (c <= ' ' || 0x7F <= c || MUST_QUOTE_EMAIL.indexOf(c) != -1) {
|
if (c <= ' ' || 0x7F <= c || MUST_QUOTE_EMAIL.indexOf(c) != -1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ public abstract class EmailHeader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void remove(java.lang.String email) {
|
public void remove(java.lang.String email) {
|
||||||
list.removeIf(address -> address.getEmail().equals(email));
|
list.removeIf(address -> address.email().equals(email));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class MailHeaderParser {
|
|||||||
public static MailMetadata parse(MailMessage m) {
|
public static MailMetadata parse(MailMessage m) {
|
||||||
MailMetadata metadata = new MailMetadata();
|
MailMetadata metadata = new MailMetadata();
|
||||||
// Find author
|
// Find author
|
||||||
metadata.author = m.from().getEmail();
|
metadata.author = m.from().email();
|
||||||
|
|
||||||
// Check email headers for X-Gerrit-<Name>
|
// Check email headers for X-Gerrit-<Name>
|
||||||
for (String header : m.additionalHeaders()) {
|
for (String header : m.additionalHeaders()) {
|
||||||
|
|||||||
@@ -71,16 +71,16 @@ public class RawMailParser {
|
|||||||
// Add From, To and Cc
|
// Add From, To and Cc
|
||||||
if (mimeMessage.getFrom() != null && !mimeMessage.getFrom().isEmpty()) {
|
if (mimeMessage.getFrom() != null && !mimeMessage.getFrom().isEmpty()) {
|
||||||
Mailbox from = mimeMessage.getFrom().get(0);
|
Mailbox from = mimeMessage.getFrom().get(0);
|
||||||
messageBuilder.from(new Address(from.getName(), from.getAddress()));
|
messageBuilder.from(Address.create(from.getName(), from.getAddress()));
|
||||||
}
|
}
|
||||||
if (mimeMessage.getTo() != null) {
|
if (mimeMessage.getTo() != null) {
|
||||||
for (Mailbox m : mimeMessage.getTo().flatten()) {
|
for (Mailbox m : mimeMessage.getTo().flatten()) {
|
||||||
messageBuilder.addTo(new Address(m.getName(), m.getAddress()));
|
messageBuilder.addTo(Address.create(m.getName(), m.getAddress()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mimeMessage.getCc() != null) {
|
if (mimeMessage.getCc() != null) {
|
||||||
for (Mailbox m : mimeMessage.getCc().flatten()) {
|
for (Mailbox m : mimeMessage.getCc().flatten()) {
|
||||||
messageBuilder.addCc(new Address(m.getName(), m.getAddress()));
|
messageBuilder.addCc(Address.create(m.getName(), m.getAddress()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -786,7 +786,7 @@ public class ChangeJson {
|
|||||||
|
|
||||||
private Collection<AccountInfo> toAccountInfoByEmail(Collection<Address> addresses) {
|
private Collection<AccountInfo> toAccountInfoByEmail(Collection<Address> addresses) {
|
||||||
return addresses.stream()
|
return addresses.stream()
|
||||||
.map(a -> new AccountInfo(a.getName(), a.getEmail()))
|
.map(a -> new AccountInfo(a.name(), a.email()))
|
||||||
.sorted(AccountInfoComparator.ORDER_NULLS_FIRST)
|
.sorted(AccountInfoComparator.ORDER_NULLS_FIRST)
|
||||||
.collect(toList());
|
.collect(toList());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -379,7 +379,7 @@ public class ReviewerAdder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Address adr = Address.tryParse(input.reviewer);
|
Address adr = Address.tryParse(input.reviewer);
|
||||||
if (adr == null || !validator.isValid(adr.getEmail())) {
|
if (adr == null || !validator.isValid(adr.email())) {
|
||||||
return fail(
|
return fail(
|
||||||
input,
|
input,
|
||||||
FailureType.NOT_FOUND,
|
FailureType.NOT_FOUND,
|
||||||
@@ -481,7 +481,7 @@ public class ReviewerAdder {
|
|||||||
}
|
}
|
||||||
accountLoaderFactory.create(true).fill(result.ccs);
|
accountLoaderFactory.create(true).fill(result.ccs);
|
||||||
for (Address a : opResult.addedCCsByEmail()) {
|
for (Address a : opResult.addedCCsByEmail()) {
|
||||||
result.ccs.add(new AccountInfo(a.getName(), a.getEmail()));
|
result.ccs.add(new AccountInfo(a.name(), a.email()));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
result.reviewers = Lists.newArrayListWithCapacity(opResult.addedReviewers().size());
|
result.reviewers = Lists.newArrayListWithCapacity(opResult.addedReviewers().size());
|
||||||
@@ -496,7 +496,7 @@ public class ReviewerAdder {
|
|||||||
}
|
}
|
||||||
accountLoaderFactory.create(true).fill(result.reviewers);
|
accountLoaderFactory.create(true).fill(result.reviewers);
|
||||||
for (Address a : opResult.addedReviewersByEmail()) {
|
for (Address a : opResult.addedReviewersByEmail()) {
|
||||||
result.reviewers.add(ReviewerInfo.byEmail(a.getName(), a.getEmail()));
|
result.reviewers.add(ReviewerInfo.byEmail(a.name(), a.email()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ public class ReviewerJson {
|
|||||||
ReviewerInfo info;
|
ReviewerInfo info;
|
||||||
if (rsrc.isByEmail()) {
|
if (rsrc.isByEmail()) {
|
||||||
Address address = rsrc.getReviewerByEmail();
|
Address address = rsrc.getReviewerByEmail();
|
||||||
info = ReviewerInfo.byEmail(address.getName(), address.getEmail());
|
info = ReviewerInfo.byEmail(address.name(), address.email());
|
||||||
} else {
|
} else {
|
||||||
Account.Id reviewerAccountId = rsrc.getReviewerUser().getAccountId();
|
Account.Id reviewerAccountId = rsrc.getReviewerUser().getAccountId();
|
||||||
info = format(new ReviewerInfo(reviewerAccountId.get()), reviewerAccountId, cd);
|
info = format(new ReviewerInfo(reviewerAccountId.get()), reviewerAccountId, cd);
|
||||||
|
|||||||
@@ -384,9 +384,9 @@ public class ChangeField {
|
|||||||
reviewersByEmail.asTable().cellSet()) {
|
reviewersByEmail.asTable().cellSet()) {
|
||||||
String v = getReviewerByEmailFieldValue(c.getRowKey(), c.getColumnKey());
|
String v = getReviewerByEmailFieldValue(c.getRowKey(), c.getColumnKey());
|
||||||
r.add(v);
|
r.add(v);
|
||||||
if (c.getColumnKey().getName() != null) {
|
if (c.getColumnKey().name() != null) {
|
||||||
// Add another entry without the name to provide search functionality on the email
|
// Add another entry without the name to provide search functionality on the email
|
||||||
Address emailOnly = new Address(c.getColumnKey().getEmail());
|
Address emailOnly = Address.create(c.getColumnKey().email());
|
||||||
r.add(getReviewerByEmailFieldValue(c.getRowKey(), emailOnly));
|
r.add(getReviewerByEmailFieldValue(c.getRowKey(), emailOnly));
|
||||||
}
|
}
|
||||||
r.add(v + ',' + c.getValue().getTime());
|
r.add(v + ',' + c.getValue().getTime());
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class ListMailFilter implements MailFilter {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean match = mailPattern.matcher(message.from().getEmail()).find();
|
boolean match = mailPattern.matcher(message.from().email()).find();
|
||||||
if ((mode == ListFilterMode.WHITELIST && !match)
|
if ((mode == ListFilterMode.WHITELIST && !match)
|
||||||
|| (mode == ListFilterMode.BLACKLIST && match)) {
|
|| (mode == ListFilterMode.BLACKLIST && match)) {
|
||||||
logger.atInfo().log("Mail message from %s rejected by list filter", message.from());
|
logger.atInfo().log("Mail message from %s rejected by list filter", message.from());
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public class AddKeySender extends OutgoingEmail {
|
|||||||
protected void init() throws EmailException {
|
protected void init() throws EmailException {
|
||||||
super.init();
|
super.init();
|
||||||
setHeader("Subject", String.format("[Gerrit Code Review] New %s Keys Added", getKeyType()));
|
setHeader("Subject", String.format("[Gerrit Code Review] New %s Keys Added", getKeyType()));
|
||||||
add(RecipientType.TO, new Address(getEmail()));
|
add(RecipientType.TO, Address.create(getEmail()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class DeleteKeySender extends OutgoingEmail {
|
|||||||
protected void init() throws EmailException {
|
protected void init() throws EmailException {
|
||||||
super.init();
|
super.init();
|
||||||
setHeader("Subject", String.format("[Gerrit Code Review] %s Keys Deleted", getKeyType()));
|
setHeader("Subject", String.format("[Gerrit Code Review] %s Keys Deleted", getKeyType()));
|
||||||
add(RecipientType.TO, new Address(getEmail()));
|
add(RecipientType.TO, Address.create(getEmail()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -52,8 +52,7 @@ public class FromAddressGeneratorProvider implements Provider<FromAddressGenerat
|
|||||||
|
|
||||||
if (from == null || "MIXED".equalsIgnoreCase(from)) {
|
if (from == null || "MIXED".equalsIgnoreCase(from)) {
|
||||||
ParameterizedString name = new ParameterizedString("${user} (Code Review)");
|
ParameterizedString name = new ParameterizedString("${user} (Code Review)");
|
||||||
generator =
|
generator = new PatternGen(srvAddr, accountCache, anonymousCowardName, name, srvAddr.email());
|
||||||
new PatternGen(srvAddr, accountCache, anonymousCowardName, name, srvAddr.getEmail());
|
|
||||||
} else if ("USER".equalsIgnoreCase(from)) {
|
} else if ("USER".equalsIgnoreCase(from)) {
|
||||||
String[] domains = cfg.getStringList("sendemail", null, "allowedDomain");
|
String[] domains = cfg.getStringList("sendemail", null, "allowedDomain");
|
||||||
Pattern domainPattern = MailUtil.glob(domains);
|
Pattern domainPattern = MailUtil.glob(domains);
|
||||||
@@ -64,18 +63,17 @@ public class FromAddressGeneratorProvider implements Provider<FromAddressGenerat
|
|||||||
generator = new ServerGen(srvAddr);
|
generator = new ServerGen(srvAddr);
|
||||||
} else {
|
} else {
|
||||||
final Address a = Address.parse(from);
|
final Address a = Address.parse(from);
|
||||||
final ParameterizedString name =
|
final ParameterizedString name = a.name() != null ? new ParameterizedString(a.name()) : null;
|
||||||
a.getName() != null ? new ParameterizedString(a.getName()) : null;
|
|
||||||
if (name == null || name.getParameterNames().isEmpty()) {
|
if (name == null || name.getParameterNames().isEmpty()) {
|
||||||
generator = new ServerGen(a);
|
generator = new ServerGen(a);
|
||||||
} else {
|
} else {
|
||||||
generator = new PatternGen(srvAddr, accountCache, anonymousCowardName, name, a.getEmail());
|
generator = new PatternGen(srvAddr, accountCache, anonymousCowardName, name, a.email());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Address toAddress(PersonIdent myIdent) {
|
private static Address toAddress(PersonIdent myIdent) {
|
||||||
return new Address(myIdent.getName(), myIdent.getEmailAddress());
|
return Address.create(myIdent.getName(), myIdent.getEmailAddress());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -127,7 +125,7 @@ public class FromAddressGeneratorProvider implements Provider<FromAddressGenerat
|
|||||||
String fullName = a.map(Account::fullName).orElse(null);
|
String fullName = a.map(Account::fullName).orElse(null);
|
||||||
String userEmail = a.map(Account::preferredEmail).orElse(null);
|
String userEmail = a.map(Account::preferredEmail).orElse(null);
|
||||||
if (canRelay(userEmail)) {
|
if (canRelay(userEmail)) {
|
||||||
return new Address(fullName, userEmail);
|
return Address.create(fullName, userEmail);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fullName == null || "".equals(fullName.trim())) {
|
if (fullName == null || "".equals(fullName.trim())) {
|
||||||
@@ -135,17 +133,17 @@ public class FromAddressGeneratorProvider implements Provider<FromAddressGenerat
|
|||||||
}
|
}
|
||||||
senderName = nameRewriteTmpl.replace("user", fullName).toString();
|
senderName = nameRewriteTmpl.replace("user", fullName).toString();
|
||||||
} else {
|
} else {
|
||||||
senderName = serverAddress.getName();
|
senderName = serverAddress.name();
|
||||||
}
|
}
|
||||||
|
|
||||||
String senderEmail;
|
String senderEmail;
|
||||||
ParameterizedString senderEmailPattern = new ParameterizedString(serverAddress.getEmail());
|
ParameterizedString senderEmailPattern = new ParameterizedString(serverAddress.email());
|
||||||
if (senderEmailPattern.getParameterNames().isEmpty()) {
|
if (senderEmailPattern.getParameterNames().isEmpty()) {
|
||||||
senderEmail = senderEmailPattern.getRawPattern();
|
senderEmail = senderEmailPattern.getRawPattern();
|
||||||
} else {
|
} else {
|
||||||
senderEmail = senderEmailPattern.replace("userHash", hashOf(senderName)).toString();
|
senderEmail = senderEmailPattern.replace("userHash", hashOf(senderName)).toString();
|
||||||
}
|
}
|
||||||
return new Address(senderName, senderEmail);
|
return Address.create(senderName, senderEmail);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** check if Gerrit is allowed to send from {@code userEmail}. */
|
/** check if Gerrit is allowed to send from {@code userEmail}. */
|
||||||
@@ -215,7 +213,7 @@ public class FromAddressGeneratorProvider implements Provider<FromAddressGenerat
|
|||||||
senderName = namePattern.replace("user", fullName).toString();
|
senderName = namePattern.replace("user", fullName).toString();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
senderName = serverAddress.getName();
|
senderName = serverAddress.name();
|
||||||
}
|
}
|
||||||
|
|
||||||
String senderEmail;
|
String senderEmail;
|
||||||
@@ -224,7 +222,7 @@ public class FromAddressGeneratorProvider implements Provider<FromAddressGenerat
|
|||||||
} else {
|
} else {
|
||||||
senderEmail = senderEmailPattern.replace("userHash", hashOf(senderName)).toString();
|
senderEmail = senderEmailPattern.replace("userHash", hashOf(senderName)).toString();
|
||||||
}
|
}
|
||||||
return new Address(senderName, senderEmail);
|
return Address.create(senderName, senderEmail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class HttpPasswordUpdateSender extends OutgoingEmail {
|
|||||||
protected void init() throws EmailException {
|
protected void init() throws EmailException {
|
||||||
super.init();
|
super.init();
|
||||||
setHeader("Subject", "[Gerrit Code Review] HTTP password was " + operation);
|
setHeader("Subject", "[Gerrit Code Review] HTTP password was " + operation);
|
||||||
add(RecipientType.TO, new Address(getEmail()));
|
add(RecipientType.TO, Address.create(getEmail()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ public abstract class OutgoingEmail {
|
|||||||
"Removing account %s from HTML email because user prefers plain text emails", id);
|
"Removing account %s from HTML email because user prefers plain text emails", id);
|
||||||
removeUser(thisUserAccount);
|
removeUser(thisUserAccount);
|
||||||
smtpRcptToPlaintextOnly.add(
|
smtpRcptToPlaintextOnly.add(
|
||||||
new Address(thisUserAccount.fullName(), thisUserAccount.preferredEmail()));
|
Address.create(thisUserAccount.fullName(), thisUserAccount.preferredEmail()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (smtpRcptTo.isEmpty() && smtpRcptToPlaintextOnly.isEmpty()) {
|
if (smtpRcptTo.isEmpty() && smtpRcptToPlaintextOnly.isEmpty()) {
|
||||||
@@ -179,11 +179,11 @@ public abstract class OutgoingEmail {
|
|||||||
if (fromId != null) {
|
if (fromId != null) {
|
||||||
Address address = toAddress(fromId);
|
Address address = toAddress(fromId);
|
||||||
if (address != null) {
|
if (address != null) {
|
||||||
j.add(address.getEmail());
|
j.add(address.email());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
smtpRcptTo.stream().forEach(a -> j.add(a.getEmail()));
|
smtpRcptTo.stream().forEach(a -> j.add(a.email()));
|
||||||
smtpRcptToPlaintextOnly.stream().forEach(a -> j.add(a.getEmail()));
|
smtpRcptToPlaintextOnly.stream().forEach(a -> j.add(a.email()));
|
||||||
setHeader(FieldName.REPLY_TO, j.toString());
|
setHeader(FieldName.REPLY_TO, j.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -518,16 +518,16 @@ public abstract class OutgoingEmail {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void add(RecipientType rt, Address addr, boolean override) {
|
protected void add(RecipientType rt, Address addr, boolean override) {
|
||||||
if (addr != null && addr.getEmail() != null && addr.getEmail().length() > 0) {
|
if (addr != null && addr.email() != null && addr.email().length() > 0) {
|
||||||
if (!args.validator.isValid(addr.getEmail())) {
|
if (!args.validator.isValid(addr.email())) {
|
||||||
logger.atWarning().log("Not emailing %s (invalid email address)", addr.getEmail());
|
logger.atWarning().log("Not emailing %s (invalid email address)", addr.email());
|
||||||
} else if (args.emailSender.canEmail(addr.getEmail())) {
|
} else if (args.emailSender.canEmail(addr.email())) {
|
||||||
if (!smtpRcptTo.add(addr)) {
|
if (!smtpRcptTo.add(addr)) {
|
||||||
if (!override) {
|
if (!override) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
((EmailHeader.AddressList) headers.get(FieldName.TO)).remove(addr.getEmail());
|
((EmailHeader.AddressList) headers.get(FieldName.TO)).remove(addr.email());
|
||||||
((EmailHeader.AddressList) headers.get(FieldName.CC)).remove(addr.getEmail());
|
((EmailHeader.AddressList) headers.get(FieldName.CC)).remove(addr.email());
|
||||||
}
|
}
|
||||||
switch (rt) {
|
switch (rt) {
|
||||||
case TO:
|
case TO:
|
||||||
@@ -554,7 +554,7 @@ public abstract class OutgoingEmail {
|
|||||||
if (!account.isActive() || e == null) {
|
if (!account.isActive() || e == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return new Address(account.fullName(), e);
|
return Address.create(account.fullName(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setupSoyContext() {
|
protected void setupSoyContext() {
|
||||||
@@ -597,7 +597,7 @@ public abstract class OutgoingEmail {
|
|||||||
protected void removeUser(Account user) {
|
protected void removeUser(Account user) {
|
||||||
String fromEmail = user.preferredEmail();
|
String fromEmail = user.preferredEmail();
|
||||||
for (Iterator<Address> j = smtpRcptTo.iterator(); j.hasNext(); ) {
|
for (Iterator<Address> j = smtpRcptTo.iterator(); j.hasNext(); ) {
|
||||||
if (j.next().getEmail().equals(fromEmail)) {
|
if (j.next().email().equals(fromEmail)) {
|
||||||
j.remove();
|
j.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ public class ProjectWatch {
|
|||||||
}
|
}
|
||||||
if (!Strings.isNullOrEmpty(group.getEmailAddress())) {
|
if (!Strings.isNullOrEmpty(group.getEmailAddress())) {
|
||||||
// If the group has an email address, do not expand membership.
|
// If the group has an email address, do not expand membership.
|
||||||
matching.emails.add(new Address(group.getEmailAddress()));
|
matching.emails.add(Address.create(group.getEmailAddress()));
|
||||||
logger.atFine().log(
|
logger.atFine().log(
|
||||||
"notify group email address %s; skip expanding to members", group.getEmailAddress());
|
"notify group email address %s; skip expanding to members", group.getEmailAddress());
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class RegisterNewEmailSender extends OutgoingEmail {
|
|||||||
protected void init() throws EmailException {
|
protected void init() throws EmailException {
|
||||||
super.init();
|
super.init();
|
||||||
setHeader("Subject", "[Gerrit Code Review] Email Verification");
|
setHeader("Subject", "[Gerrit Code Review] Email Verification");
|
||||||
add(RecipientType.TO, new Address(addr));
|
add(RecipientType.TO, Address.create(addr));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -206,9 +206,8 @@ public class SmtpEmailSender implements EmailSender {
|
|||||||
try {
|
try {
|
||||||
final SMTPClient client = open();
|
final SMTPClient client = open();
|
||||||
try {
|
try {
|
||||||
if (!client.setSender(from.getEmail())) {
|
if (!client.setSender(from.email())) {
|
||||||
throw new EmailException(
|
throw new EmailException("Server " + smtpHost + " rejected from address " + from.email());
|
||||||
"Server " + smtpHost + " rejected from address " + from.getEmail());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Do not prevent the email from being sent to "good" users simply
|
/* Do not prevent the email from being sent to "good" users simply
|
||||||
@@ -219,7 +218,7 @@ public class SmtpEmailSender implements EmailSender {
|
|||||||
* error(s) logged.
|
* error(s) logged.
|
||||||
*/
|
*/
|
||||||
for (Address addr : rcpt) {
|
for (Address addr : rcpt) {
|
||||||
if (!client.addRecipient(addr.getEmail())) {
|
if (!client.addRecipient(addr.email())) {
|
||||||
String error = client.getReplyString();
|
String error = client.getReplyString();
|
||||||
rejected
|
rejected
|
||||||
.append("Server ")
|
.append("Server ")
|
||||||
|
|||||||
@@ -1077,7 +1077,7 @@ public class AccountIT extends AbstractDaemonTest {
|
|||||||
|
|
||||||
assertThat(sender.getMessages()).hasSize(1);
|
assertThat(sender.getMessages()).hasSize(1);
|
||||||
Message m = sender.getMessages().get(0);
|
Message m = sender.getMessages().get(0);
|
||||||
assertThat(m.rcpt()).containsExactly(new Address(email));
|
assertThat(m.rcpt()).containsExactly(Address.create(email));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -1517,7 +1517,7 @@ public class ChangeIT extends AbstractDaemonTest {
|
|||||||
List<Message> messages = sender.getMessages();
|
List<Message> messages = sender.getMessages();
|
||||||
assertThat(messages).hasSize(1);
|
assertThat(messages).hasSize(1);
|
||||||
Message m = messages.get(0);
|
Message m = messages.get(0);
|
||||||
assertThat(m.from().getName()).isEqualTo("Administrator (Code Review)");
|
assertThat(m.from().name()).isEqualTo("Administrator (Code Review)");
|
||||||
assertThat(m.rcpt()).containsExactly(user.getNameEmail());
|
assertThat(m.rcpt()).containsExactly(user.getNameEmail());
|
||||||
assertThat(m.body()).contains("I'd like you to do a code review");
|
assertThat(m.body()).contains("I'd like you to do a code review");
|
||||||
assertThat(m.body()).contains("Change subject: " + PushOneCommit.SUBJECT + "\n");
|
assertThat(m.body()).contains("Change subject: " + PushOneCommit.SUBJECT + "\n");
|
||||||
@@ -1899,7 +1899,7 @@ public class ChangeIT extends AbstractDaemonTest {
|
|||||||
List<Message> messages = sender.getMessages();
|
List<Message> messages = sender.getMessages();
|
||||||
assertThat(messages).hasSize(1);
|
assertThat(messages).hasSize(1);
|
||||||
Message m = messages.get(0);
|
Message m = messages.get(0);
|
||||||
assertThat(m.rcpt()).containsExactly(new Address(fullname, email));
|
assertThat(m.rcpt()).containsExactly(Address.create(fullname, email));
|
||||||
assertThat(m.body()).contains("Hello " + fullname + ",\n");
|
assertThat(m.body()).contains("Hello " + fullname + ",\n");
|
||||||
assertThat(m.body()).contains("I'd like you to do a code review.");
|
assertThat(m.body()).contains("I'd like you to do a code review.");
|
||||||
assertThat(m.body()).contains("Change subject: " + PushOneCommit.SUBJECT + "\n");
|
assertThat(m.body()).contains("Change subject: " + PushOneCommit.SUBJECT + "\n");
|
||||||
@@ -1960,7 +1960,7 @@ public class ChangeIT extends AbstractDaemonTest {
|
|||||||
List<Message> messages = sender.getMessages();
|
List<Message> messages = sender.getMessages();
|
||||||
assertThat(messages).hasSize(1);
|
assertThat(messages).hasSize(1);
|
||||||
Message m = messages.get(0);
|
Message m = messages.get(0);
|
||||||
assertThat(m.rcpt()).containsExactly(new Address(myGroupUserFullname, myGroupUserEmail));
|
assertThat(m.rcpt()).containsExactly(Address.create(myGroupUserFullname, myGroupUserEmail));
|
||||||
assertThat(m.body()).contains("Hello " + myGroupUserFullname + ",\n");
|
assertThat(m.body()).contains("Hello " + myGroupUserFullname + ",\n");
|
||||||
assertThat(m.body()).contains("I'd like you to do a code review.");
|
assertThat(m.body()).contains("I'd like you to do a code review.");
|
||||||
assertThat(m.body()).contains("Change subject: " + PushOneCommit.SUBJECT + "\n");
|
assertThat(m.body()).contains("Change subject: " + PushOneCommit.SUBJECT + "\n");
|
||||||
@@ -4461,7 +4461,7 @@ public class ChangeIT extends AbstractDaemonTest {
|
|||||||
amendChange(r.getChangeId());
|
amendChange(r.getChangeId());
|
||||||
List<Message> messages = sender.getMessages();
|
List<Message> messages = sender.getMessages();
|
||||||
assertThat(messages).hasSize(1);
|
assertThat(messages).hasSize(1);
|
||||||
Address address = new Address(fullname, email);
|
Address address = Address.create(fullname, email);
|
||||||
assertThat(messages.get(0).rcpt()).containsExactly(address);
|
assertThat(messages.get(0).rcpt()).containsExactly(address);
|
||||||
|
|
||||||
// Review notification is not sent to users ignoring the change
|
// Review notification is not sent to users ignoring the change
|
||||||
|
|||||||
@@ -1851,7 +1851,8 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void pushWithEmailInFooterNotFound() throws Exception {
|
public void pushWithEmailInFooterNotFound() throws Exception {
|
||||||
pushWithReviewerInFooter(new Address("No Body", "notarealuser@example.com").toString(), null);
|
pushWithReviewerInFooter(
|
||||||
|
Address.create("No Body", "notarealuser@example.com").toString(), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -514,7 +514,7 @@ public class SubmitOnPushIT extends AbstractDaemonTest {
|
|||||||
TestAccount expected, @Nullable RecipientType expectedRecipientType) {
|
TestAccount expected, @Nullable RecipientType expectedRecipientType) {
|
||||||
String expectedEmail = expected.email();
|
String expectedEmail = expected.email();
|
||||||
String expectedFullName = expected.fullName();
|
String expectedFullName = expected.fullName();
|
||||||
Address expectedAddress = new Address(expectedFullName, expectedEmail);
|
Address expectedAddress = Address.create(expectedFullName, expectedEmail);
|
||||||
assertThat(sender.getMessages()).hasSize(2);
|
assertThat(sender.getMessages()).hasSize(2);
|
||||||
Message message = sender.getMessages().get(0);
|
Message message = sender.getMessages().get(0);
|
||||||
assertThat(message.body().contains("review")).isTrue();
|
assertThat(message.body().contains("review")).isTrue();
|
||||||
|
|||||||
@@ -368,6 +368,6 @@ public class ChangeReviewersByEmailIT extends AbstractDaemonTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static String toRfcAddressString(AccountInfo info) {
|
private static String toRfcAddressString(AccountInfo info) {
|
||||||
return (new Address(info.name, info.email)).toString();
|
return (Address.create(info.name, info.email)).toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -830,7 +830,7 @@ public class ChangeReviewersIT extends AbstractDaemonTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void assertThatUserIsOnlyReviewer(String changeId) throws Exception {
|
private void assertThatUserIsOnlyReviewer(String changeId) throws Exception {
|
||||||
AccountInfo userInfo = new AccountInfo(user.fullName(), user.getNameEmail().getEmail());
|
AccountInfo userInfo = new AccountInfo(user.fullName(), user.getNameEmail().email());
|
||||||
userInfo._accountId = user.id().get();
|
userInfo._accountId = user.id().get();
|
||||||
userInfo.username = user.username();
|
userInfo.username = user.username();
|
||||||
assertThat(gApi.changes().id(changeId).get().reviewers)
|
assertThat(gApi.changes().id(changeId).get().reviewers)
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ public class CreateChangeIT extends AbstractDaemonTest {
|
|||||||
assertThat(author).email().isEqualTo(input.author.email);
|
assertThat(author).email().isEqualTo(input.author.email);
|
||||||
assertThat(author).name().isEqualTo(input.author.name);
|
assertThat(author).name().isEqualTo(input.author.name);
|
||||||
GitPerson committer = rApi.commit(false).committer;
|
GitPerson committer = rApi.commit(false).committer;
|
||||||
assertThat(committer).email().isEqualTo(admin.getNameEmail().getEmail());
|
assertThat(committer).email().isEqualTo(admin.getNameEmail().email());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -463,7 +463,7 @@ public class CreateChangeIT extends AbstractDaemonTest {
|
|||||||
GitPerson author = rApi.commit(false).author;
|
GitPerson author = rApi.commit(false).author;
|
||||||
assertThat(author).email().isEqualTo(in.author.email);
|
assertThat(author).email().isEqualTo(in.author.email);
|
||||||
GitPerson committer = rApi.commit(false).committer;
|
GitPerson committer = rApi.commit(false).committer;
|
||||||
assertThat(committer).email().isEqualTo(admin.getNameEmail().getEmail());
|
assertThat(committer).email().isEqualTo(admin.getNameEmail().email());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class ProjectWatchIT extends AbstractDaemonTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void newPatchSetsNotifyConfig() throws Exception {
|
public void newPatchSetsNotifyConfig() throws Exception {
|
||||||
Address addr = new Address("Watcher", "watcher@example.com");
|
Address addr = Address.create("Watcher", "watcher@example.com");
|
||||||
NotifyConfig nc = new NotifyConfig();
|
NotifyConfig nc = new NotifyConfig();
|
||||||
nc.addEmail(addr);
|
nc.addEmail(addr);
|
||||||
nc.setName("new-patch-set");
|
nc.setName("new-patch-set");
|
||||||
@@ -90,7 +90,7 @@ public class ProjectWatchIT extends AbstractDaemonTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void noNotificationForPrivateChangesForWatchersInNotifyConfig() throws Exception {
|
public void noNotificationForPrivateChangesForWatchersInNotifyConfig() throws Exception {
|
||||||
Address addr = new Address("Watcher", "watcher@example.com");
|
Address addr = Address.create("Watcher", "watcher@example.com");
|
||||||
NotifyConfig nc = new NotifyConfig();
|
NotifyConfig nc = new NotifyConfig();
|
||||||
nc.addEmail(addr);
|
nc.addEmail(addr);
|
||||||
nc.setName("team");
|
nc.setName("team");
|
||||||
@@ -122,7 +122,7 @@ public class ProjectWatchIT extends AbstractDaemonTest {
|
|||||||
@Test
|
@Test
|
||||||
public void noNotificationForChangeThatIsTurnedPrivateForWatchersInNotifyConfig()
|
public void noNotificationForChangeThatIsTurnedPrivateForWatchersInNotifyConfig()
|
||||||
throws Exception {
|
throws Exception {
|
||||||
Address addr = new Address("Watcher", "watcher@example.com");
|
Address addr = Address.create("Watcher", "watcher@example.com");
|
||||||
NotifyConfig nc = new NotifyConfig();
|
NotifyConfig nc = new NotifyConfig();
|
||||||
nc.addEmail(addr);
|
nc.addEmail(addr);
|
||||||
nc.setName("team");
|
nc.setName("team");
|
||||||
@@ -151,7 +151,7 @@ public class ProjectWatchIT extends AbstractDaemonTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void noNotificationForWipChangesForWatchersInNotifyConfig() throws Exception {
|
public void noNotificationForWipChangesForWatchersInNotifyConfig() throws Exception {
|
||||||
Address addr = new Address("Watcher", "watcher@example.com");
|
Address addr = Address.create("Watcher", "watcher@example.com");
|
||||||
NotifyConfig nc = new NotifyConfig();
|
NotifyConfig nc = new NotifyConfig();
|
||||||
nc.addEmail(addr);
|
nc.addEmail(addr);
|
||||||
nc.setName("team");
|
nc.setName("team");
|
||||||
@@ -182,7 +182,7 @@ public class ProjectWatchIT extends AbstractDaemonTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void noNotificationForChangeThatIsTurnedWipForWatchersInNotifyConfig() throws Exception {
|
public void noNotificationForChangeThatIsTurnedWipForWatchersInNotifyConfig() throws Exception {
|
||||||
Address addr = new Address("Watcher", "watcher@example.com");
|
Address addr = Address.create("Watcher", "watcher@example.com");
|
||||||
NotifyConfig nc = new NotifyConfig();
|
NotifyConfig nc = new NotifyConfig();
|
||||||
nc.addEmail(addr);
|
nc.addEmail(addr);
|
||||||
nc.setName("team");
|
nc.setName("team");
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ public class AbstractParserTest {
|
|||||||
protected static MailMessage.Builder newMailMessageBuilder() {
|
protected static MailMessage.Builder newMailMessageBuilder() {
|
||||||
MailMessage.Builder b = MailMessage.builder();
|
MailMessage.Builder b = MailMessage.builder();
|
||||||
b.id("id");
|
b.id("id");
|
||||||
b.from(new Address("Foo Bar", "foo@bar.com"));
|
b.from(Address.create("Foo Bar", "foo@bar.com"));
|
||||||
b.dateReceived(Instant.now());
|
b.dateReceived(Instant.now());
|
||||||
b.subject("");
|
b.subject("");
|
||||||
return b;
|
return b;
|
||||||
|
|||||||
@@ -23,57 +23,57 @@ public class AddressTest {
|
|||||||
@Test
|
@Test
|
||||||
public void parse_NameEmail1() {
|
public void parse_NameEmail1() {
|
||||||
final Address a = Address.parse("A U Thor <author@example.com>");
|
final Address a = Address.parse("A U Thor <author@example.com>");
|
||||||
assertThat(a.getName()).isEqualTo("A U Thor");
|
assertThat(a.name()).isEqualTo("A U Thor");
|
||||||
assertThat(a.getEmail()).isEqualTo("author@example.com");
|
assertThat(a.email()).isEqualTo("author@example.com");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void parse_NameEmail2() {
|
public void parse_NameEmail2() {
|
||||||
final Address a = Address.parse("A <a@b>");
|
final Address a = Address.parse("A <a@b>");
|
||||||
assertThat(a.getName()).isEqualTo("A");
|
assertThat(a.name()).isEqualTo("A");
|
||||||
assertThat(a.getEmail()).isEqualTo("a@b");
|
assertThat(a.email()).isEqualTo("a@b");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void parse_NameEmail3() {
|
public void parse_NameEmail3() {
|
||||||
final Address a = Address.parse("<a@b>");
|
final Address a = Address.parse("<a@b>");
|
||||||
assertThat(a.getName()).isNull();
|
assertThat(a.name()).isNull();
|
||||||
assertThat(a.getEmail()).isEqualTo("a@b");
|
assertThat(a.email()).isEqualTo("a@b");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void parse_NameEmail4() {
|
public void parse_NameEmail4() {
|
||||||
final Address a = Address.parse("A U Thor<author@example.com>");
|
final Address a = Address.parse("A U Thor<author@example.com>");
|
||||||
assertThat(a.getName()).isEqualTo("A U Thor");
|
assertThat(a.name()).isEqualTo("A U Thor");
|
||||||
assertThat(a.getEmail()).isEqualTo("author@example.com");
|
assertThat(a.email()).isEqualTo("author@example.com");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void parse_NameEmail5() {
|
public void parse_NameEmail5() {
|
||||||
final Address a = Address.parse("A U Thor <author@example.com>");
|
final Address a = Address.parse("A U Thor <author@example.com>");
|
||||||
assertThat(a.getName()).isEqualTo("A U Thor");
|
assertThat(a.name()).isEqualTo("A U Thor");
|
||||||
assertThat(a.getEmail()).isEqualTo("author@example.com");
|
assertThat(a.email()).isEqualTo("author@example.com");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void parse_Email1() {
|
public void parse_Email1() {
|
||||||
final Address a = Address.parse("author@example.com");
|
final Address a = Address.parse("author@example.com");
|
||||||
assertThat(a.getName()).isNull();
|
assertThat(a.name()).isNull();
|
||||||
assertThat(a.getEmail()).isEqualTo("author@example.com");
|
assertThat(a.email()).isEqualTo("author@example.com");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void parse_Email2() {
|
public void parse_Email2() {
|
||||||
final Address a = Address.parse("a@b");
|
final Address a = Address.parse("a@b");
|
||||||
assertThat(a.getName()).isNull();
|
assertThat(a.name()).isNull();
|
||||||
assertThat(a.getEmail()).isEqualTo("a@b");
|
assertThat(a.email()).isEqualTo("a@b");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void parse_NewTLD() {
|
public void parse_NewTLD() {
|
||||||
Address a = Address.parse("A U Thor <author@example.systems>");
|
Address a = Address.parse("A U Thor <author@example.systems>");
|
||||||
assertThat(a.getName()).isEqualTo("A U Thor");
|
assertThat(a.name()).isEqualTo("A U Thor");
|
||||||
assertThat(a.getEmail()).isEqualTo("author@example.systems");
|
assertThat(a.email()).isEqualTo("author@example.systems");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -148,6 +148,6 @@ public class AddressTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static String format(String name, String email) {
|
private static String format(String name, String email) {
|
||||||
return new Address(name, email).toHeaderString();
|
return Address.create(name, email).toHeaderString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,11 +38,11 @@ public class MailHeaderParserTest {
|
|||||||
b.addAdditionalHeader(
|
b.addAdditionalHeader(
|
||||||
MailHeader.COMMENT_DATE.fieldWithDelimiter() + "Tue, 25 Oct 2016 02:11:35 -0700");
|
MailHeader.COMMENT_DATE.fieldWithDelimiter() + "Tue, 25 Oct 2016 02:11:35 -0700");
|
||||||
|
|
||||||
Address author = new Address("Diffy", "test@gerritcodereview.com");
|
Address author = Address.create("Diffy", "test@gerritcodereview.com");
|
||||||
b.from(author);
|
b.from(author);
|
||||||
|
|
||||||
MailMetadata meta = MailHeaderParser.parse(b.build());
|
MailMetadata meta = MailHeaderParser.parse(b.build());
|
||||||
assertThat(meta.author).isEqualTo(author.getEmail());
|
assertThat(meta.author).isEqualTo(author.email());
|
||||||
assertThat(meta.changeNumber).isEqualTo(123);
|
assertThat(meta.changeNumber).isEqualTo(123);
|
||||||
assertThat(meta.patchSet).isEqualTo(1);
|
assertThat(meta.patchSet).isEqualTo(1);
|
||||||
assertThat(meta.messageType).isEqualTo("comment");
|
assertThat(meta.messageType).isEqualTo("comment");
|
||||||
@@ -71,11 +71,11 @@ public class MailHeaderParserTest {
|
|||||||
.append("Tue, 25 Oct 2016 02:11:35 -0700\r\n");
|
.append("Tue, 25 Oct 2016 02:11:35 -0700\r\n");
|
||||||
b.textContent(stringBuilder.toString());
|
b.textContent(stringBuilder.toString());
|
||||||
|
|
||||||
Address author = new Address("Diffy", "test@gerritcodereview.com");
|
Address author = Address.create("Diffy", "test@gerritcodereview.com");
|
||||||
b.from(author);
|
b.from(author);
|
||||||
|
|
||||||
MailMetadata meta = MailHeaderParser.parse(b.build());
|
MailMetadata meta = MailHeaderParser.parse(b.build());
|
||||||
assertThat(meta.author).isEqualTo(author.getEmail());
|
assertThat(meta.author).isEqualTo(author.email());
|
||||||
assertThat(meta.changeNumber).isEqualTo(123);
|
assertThat(meta.changeNumber).isEqualTo(123);
|
||||||
assertThat(meta.patchSet).isEqualTo(1);
|
assertThat(meta.patchSet).isEqualTo(1);
|
||||||
assertThat(meta.messageType).isEqualTo("comment");
|
assertThat(meta.messageType).isEqualTo("comment");
|
||||||
@@ -112,11 +112,11 @@ public class MailHeaderParserTest {
|
|||||||
.append("</div>");
|
.append("</div>");
|
||||||
b.htmlContent(stringBuilder.toString());
|
b.htmlContent(stringBuilder.toString());
|
||||||
|
|
||||||
Address author = new Address("Diffy", "test@gerritcodereview.com");
|
Address author = Address.create("Diffy", "test@gerritcodereview.com");
|
||||||
b.from(author);
|
b.from(author);
|
||||||
|
|
||||||
MailMetadata meta = MailHeaderParser.parse(b.build());
|
MailMetadata meta = MailHeaderParser.parse(b.build());
|
||||||
assertThat(meta.author).isEqualTo(author.getEmail());
|
assertThat(meta.author).isEqualTo(author.email());
|
||||||
assertThat(meta.changeNumber).isEqualTo(123);
|
assertThat(meta.changeNumber).isEqualTo(123);
|
||||||
assertThat(meta.patchSet).isEqualTo(1);
|
assertThat(meta.patchSet).isEqualTo(1);
|
||||||
assertThat(meta.messageType).isEqualTo("comment");
|
assertThat(meta.messageType).isEqualTo("comment");
|
||||||
|
|||||||
@@ -77,8 +77,8 @@ public class AttachmentMessage extends RawMailMessage {
|
|||||||
MailMessage.Builder expect = MailMessage.builder();
|
MailMessage.Builder expect = MailMessage.builder();
|
||||||
expect
|
expect
|
||||||
.id("<CAM7sg=3meaAVUxW3KXeJEVs8sv_ADw1BnvpcHHiYVR2TQQi__w@mail.gmail.com>")
|
.id("<CAM7sg=3meaAVUxW3KXeJEVs8sv_ADw1BnvpcHHiYVR2TQQi__w@mail.gmail.com>")
|
||||||
.from(new Address("Patrick Hiesel", "hiesel@google.com"))
|
.from(Address.create("Patrick Hiesel", "hiesel@google.com"))
|
||||||
.addTo(new Address("Patrick Hiesel", "hiesel@google.com"))
|
.addTo(Address.create("Patrick Hiesel", "hiesel@google.com"))
|
||||||
.textContent("Contains unwanted attachment")
|
.textContent("Contains unwanted attachment")
|
||||||
.htmlContent("<div dir=\"ltr\">Contains unwanted attachment</div>")
|
.htmlContent("<div dir=\"ltr\">Contains unwanted attachment</div>")
|
||||||
.subject("Test Subject")
|
.subject("Test Subject")
|
||||||
|
|||||||
@@ -53,10 +53,10 @@ public class Base64HeaderMessage extends RawMailMessage {
|
|||||||
expect
|
expect
|
||||||
.id("<001a114da7ae26e2eb053fe0c29c@google.com>")
|
.id("<001a114da7ae26e2eb053fe0c29c@google.com>")
|
||||||
.from(
|
.from(
|
||||||
new Address(
|
Address.create(
|
||||||
"Jonathan Nieder (Gerrit)",
|
"Jonathan Nieder (Gerrit)",
|
||||||
"noreply-gerritcodereview-CtTy0igsBrnvL7dKoWEIEg@google.com"))
|
"noreply-gerritcodereview-CtTy0igsBrnvL7dKoWEIEg@google.com"))
|
||||||
.addTo(new Address("ekempin", "ekempin@google.com"))
|
.addTo(Address.create("ekempin", "ekempin@google.com"))
|
||||||
.textContent(textContent)
|
.textContent(textContent)
|
||||||
.subject("\uD83D\uDE1B test")
|
.subject("\uD83D\uDE1B test")
|
||||||
.dateReceived(
|
.dateReceived(
|
||||||
|
|||||||
@@ -91,10 +91,10 @@ public class HtmlMimeMessage extends RawMailMessage {
|
|||||||
expect
|
expect
|
||||||
.id("<001a114cd8be55b4ab053face5cd@google.com>")
|
.id("<001a114cd8be55b4ab053face5cd@google.com>")
|
||||||
.from(
|
.from(
|
||||||
new Address(
|
Address.create(
|
||||||
"ekempin (Gerrit)", "noreply-gerritcodereview-qUgXfQecoDLHwp0MldAzig@google.com"))
|
"ekempin (Gerrit)", "noreply-gerritcodereview-qUgXfQecoDLHwp0MldAzig@google.com"))
|
||||||
.addCc(new Address("ekempin", "ekempin@google.com"))
|
.addCc(Address.create("ekempin", "ekempin@google.com"))
|
||||||
.addTo(new Address("Patrick Hiesel", "hiesel@google.com"))
|
.addTo(Address.create("Patrick Hiesel", "hiesel@google.com"))
|
||||||
.textContent(textContent)
|
.textContent(textContent)
|
||||||
.htmlContent(unencodedHtmlContent)
|
.htmlContent(unencodedHtmlContent)
|
||||||
.subject("Change in gerrit[master]: Implement receiver class structure and bindings")
|
.subject("Change in gerrit[master]: Implement receiver class structure and bindings")
|
||||||
|
|||||||
@@ -57,10 +57,10 @@ public class NonUTF8Message extends RawMailMessage {
|
|||||||
expect
|
expect
|
||||||
.id("<001a114da7ae26e2eb053fe0c29c@google.com>")
|
.id("<001a114da7ae26e2eb053fe0c29c@google.com>")
|
||||||
.from(
|
.from(
|
||||||
new Address(
|
Address.create(
|
||||||
"Jonathan Nieder (Gerrit)",
|
"Jonathan Nieder (Gerrit)",
|
||||||
"noreply-gerritcodereview-CtTy0igsBrnvL7dKoWEIEg@google.com"))
|
"noreply-gerritcodereview-CtTy0igsBrnvL7dKoWEIEg@google.com"))
|
||||||
.addTo(new Address("ekempin", "ekempin@google.com"))
|
.addTo(Address.create("ekempin", "ekempin@google.com"))
|
||||||
.textContent(textContent)
|
.textContent(textContent)
|
||||||
.subject("\uD83D\uDE1B test")
|
.subject("\uD83D\uDE1B test")
|
||||||
.dateReceived(
|
.dateReceived(
|
||||||
|
|||||||
@@ -54,10 +54,10 @@ public class QuotedPrintableHeaderMessage extends RawMailMessage {
|
|||||||
expect
|
expect
|
||||||
.id("<001a114da7ae26e2eb053fe0c29c@google.com>")
|
.id("<001a114da7ae26e2eb053fe0c29c@google.com>")
|
||||||
.from(
|
.from(
|
||||||
new Address(
|
Address.create(
|
||||||
"Jonathan Nieder (Gerrit)",
|
"Jonathan Nieder (Gerrit)",
|
||||||
"noreply-gerritcodereview-CtTy0igsBrnvL7dKoWEIEg@google.com"))
|
"noreply-gerritcodereview-CtTy0igsBrnvL7dKoWEIEg@google.com"))
|
||||||
.addTo(new Address("ekempin", "ekempin@google.com"))
|
.addTo(Address.create("ekempin", "ekempin@google.com"))
|
||||||
.textContent(textContent)
|
.textContent(textContent)
|
||||||
.subject("âme vulgaire")
|
.subject("âme vulgaire")
|
||||||
.dateReceived(
|
.dateReceived(
|
||||||
|
|||||||
@@ -116,13 +116,13 @@ public class SimpleTextMessage extends RawMailMessage {
|
|||||||
expect
|
expect
|
||||||
.id("<001a114da7ae26e2eb053fe0c29c@google.com>")
|
.id("<001a114da7ae26e2eb053fe0c29c@google.com>")
|
||||||
.from(
|
.from(
|
||||||
new Address(
|
Address.create(
|
||||||
"Jonathan Nieder (Gerrit)",
|
"Jonathan Nieder (Gerrit)",
|
||||||
"noreply-gerritcodereview-CtTy0igsBrnvL7dKoWEIEg@google.com"))
|
"noreply-gerritcodereview-CtTy0igsBrnvL7dKoWEIEg@google.com"))
|
||||||
.addTo(new Address("ekempin", "ekempin@google.com"))
|
.addTo(Address.create("ekempin", "ekempin@google.com"))
|
||||||
.addCc(new Address("Dave Borowitz", "dborowitz@google.com"))
|
.addCc(Address.create("Dave Borowitz", "dborowitz@google.com"))
|
||||||
.addCc(new Address("Jonathan Nieder", "jrn@google.com"))
|
.addCc(Address.create("Jonathan Nieder", "jrn@google.com"))
|
||||||
.addCc(new Address("Patrick Hiesel", "hiesel@google.com"))
|
.addCc(Address.create("Patrick Hiesel", "hiesel@google.com"))
|
||||||
.textContent(textContent)
|
.textContent(textContent)
|
||||||
.subject("Change in gerrit[master]: (Re)enable voting buttons for merged changes")
|
.subject("Change in gerrit[master]: (Re)enable voting buttons for merged changes")
|
||||||
.dateReceived(
|
.dateReceived(
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ public class AutoReplyMailFilterTest {
|
|||||||
// Build Message
|
// Build Message
|
||||||
MailMessage.Builder b = MailMessage.builder();
|
MailMessage.Builder b = MailMessage.builder();
|
||||||
b.id("some id");
|
b.id("some id");
|
||||||
b.from(new Address("admim@example.com"));
|
b.from(Address.create("admim@example.com"));
|
||||||
b.addTo(new Address("gerrit@my-company.com")); // Not evaluated
|
b.addTo(Address.create("gerrit@my-company.com")); // Not evaluated
|
||||||
b.subject("");
|
b.subject("");
|
||||||
b.dateReceived(Instant.now());
|
b.dateReceived(Instant.now());
|
||||||
b.textContent("I am currently out of office, please leave a code review after the beep.");
|
b.textContent("I am currently out of office, please leave a code review after the beep.");
|
||||||
|
|||||||
@@ -85,8 +85,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(name);
|
assertThat(r.name()).isEqualTo(name);
|
||||||
assertThat(r.getEmail()).isEqualTo(email);
|
assertThat(r.email()).isEqualTo(email);
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,8 +99,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isNull();
|
assertThat(r.name()).isNull();
|
||||||
assertThat(r.getEmail()).isEqualTo(email);
|
assertThat(r.email()).isEqualTo(email);
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -113,8 +113,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(name + " (Code Review)");
|
assertThat(r.name()).isEqualTo(name + " (Code Review)");
|
||||||
assertThat(r.getEmail()).isEqualTo(ident.getEmailAddress());
|
assertThat(r.email()).isEqualTo(ident.getEmailAddress());
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,8 +123,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
setFrom("USER");
|
setFrom("USER");
|
||||||
final Address r = create().from(null);
|
final Address r = create().from(null);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(ident.getName());
|
assertThat(r.name()).isEqualTo(ident.getName());
|
||||||
assertThat(r.getEmail()).isEqualTo(ident.getEmailAddress());
|
assertThat(r.email()).isEqualTo(ident.getEmailAddress());
|
||||||
verifyZeroInteractions(accountCache);
|
verifyZeroInteractions(accountCache);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,8 +138,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(name);
|
assertThat(r.name()).isEqualTo(name);
|
||||||
assertThat(r.getEmail()).isEqualTo(email);
|
assertThat(r.email()).isEqualTo(email);
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,8 +153,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(name + " (Code Review)");
|
assertThat(r.name()).isEqualTo(name + " (Code Review)");
|
||||||
assertThat(r.getEmail()).isEqualTo(ident.getEmailAddress());
|
assertThat(r.email()).isEqualTo(ident.getEmailAddress());
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,8 +169,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(name);
|
assertThat(r.name()).isEqualTo(name);
|
||||||
assertThat(r.getEmail()).isEqualTo(email);
|
assertThat(r.email()).isEqualTo(email);
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,8 +185,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(name + " (Code Review)");
|
assertThat(r.name()).isEqualTo(name + " (Code Review)");
|
||||||
assertThat(r.getEmail()).isEqualTo(ident.getEmailAddress());
|
assertThat(r.email()).isEqualTo(ident.getEmailAddress());
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,8 +200,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(name);
|
assertThat(r.name()).isEqualTo(name);
|
||||||
assertThat(r.getEmail()).isEqualTo(email);
|
assertThat(r.email()).isEqualTo(email);
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -227,8 +227,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(ident.getName());
|
assertThat(r.name()).isEqualTo(ident.getName());
|
||||||
assertThat(r.getEmail()).isEqualTo(ident.getEmailAddress());
|
assertThat(r.email()).isEqualTo(ident.getEmailAddress());
|
||||||
verifyZeroInteractions(accountCache);
|
verifyZeroInteractions(accountCache);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,8 +237,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
setFrom("SERVER");
|
setFrom("SERVER");
|
||||||
final Address r = create().from(null);
|
final Address r = create().from(null);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(ident.getName());
|
assertThat(r.name()).isEqualTo(ident.getName());
|
||||||
assertThat(r.getEmail()).isEqualTo(ident.getEmailAddress());
|
assertThat(r.email()).isEqualTo(ident.getEmailAddress());
|
||||||
verifyZeroInteractions(accountCache);
|
verifyZeroInteractions(accountCache);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -264,8 +264,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(name + " (Code Review)");
|
assertThat(r.name()).isEqualTo(name + " (Code Review)");
|
||||||
assertThat(r.getEmail()).isEqualTo(ident.getEmailAddress());
|
assertThat(r.email()).isEqualTo(ident.getEmailAddress());
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -278,8 +278,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo("Anonymous Coward (Code Review)");
|
assertThat(r.name()).isEqualTo("Anonymous Coward (Code Review)");
|
||||||
assertThat(r.getEmail()).isEqualTo(ident.getEmailAddress());
|
assertThat(r.email()).isEqualTo(ident.getEmailAddress());
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -292,8 +292,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(name + " (Code Review)");
|
assertThat(r.name()).isEqualTo(name + " (Code Review)");
|
||||||
assertThat(r.getEmail()).isEqualTo(ident.getEmailAddress());
|
assertThat(r.email()).isEqualTo(ident.getEmailAddress());
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -302,8 +302,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
setFrom("MIXED");
|
setFrom("MIXED");
|
||||||
final Address r = create().from(null);
|
final Address r = create().from(null);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(ident.getName());
|
assertThat(r.name()).isEqualTo(ident.getName());
|
||||||
assertThat(r.getEmail()).isEqualTo(ident.getEmailAddress());
|
assertThat(r.email()).isEqualTo(ident.getEmailAddress());
|
||||||
verifyZeroInteractions(accountCache);
|
verifyZeroInteractions(accountCache);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,8 +317,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo("A " + name + " B");
|
assertThat(r.name()).isEqualTo("A " + name + " B");
|
||||||
assertThat(r.getEmail()).isEqualTo("my.server@email.address");
|
assertThat(r.email()).isEqualTo("my.server@email.address");
|
||||||
verifyAccountCacheGet(user);
|
verifyAccountCacheGet(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -331,8 +331,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(user);
|
final Address r = create().from(user);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo("A Anonymous Coward B");
|
assertThat(r.name()).isEqualTo("A Anonymous Coward B");
|
||||||
assertThat(r.getEmail()).isEqualTo("my.server@email.address");
|
assertThat(r.email()).isEqualTo("my.server@email.address");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -341,8 +341,8 @@ public class FromAddressGeneratorProviderTest {
|
|||||||
|
|
||||||
final Address r = create().from(null);
|
final Address r = create().from(null);
|
||||||
assertThat(r).isNotNull();
|
assertThat(r).isNotNull();
|
||||||
assertThat(r.getName()).isEqualTo(ident.getName());
|
assertThat(r.name()).isEqualTo(ident.getName());
|
||||||
assertThat(r.getEmail()).isEqualTo("my.server@email.address");
|
assertThat(r.email()).isEqualTo("my.server@email.address");
|
||||||
}
|
}
|
||||||
|
|
||||||
private Account.Id user(String name, String email) {
|
private Account.Id user(String name, String email) {
|
||||||
|
|||||||
@@ -431,11 +431,11 @@ public class ChangeNotesStateTest {
|
|||||||
ImmutableTable.<ReviewerStateInternal, Address, Timestamp>builder()
|
ImmutableTable.<ReviewerStateInternal, Address, Timestamp>builder()
|
||||||
.put(
|
.put(
|
||||||
ReviewerStateInternal.CC,
|
ReviewerStateInternal.CC,
|
||||||
new Address("Name1", "email1@example.com"),
|
Address.create("Name1", "email1@example.com"),
|
||||||
new Timestamp(1212L))
|
new Timestamp(1212L))
|
||||||
.put(
|
.put(
|
||||||
ReviewerStateInternal.REVIEWER,
|
ReviewerStateInternal.REVIEWER,
|
||||||
new Address("Name2", "email2@example.com"),
|
Address.create("Name2", "email2@example.com"),
|
||||||
new Timestamp(3434L))
|
new Timestamp(3434L))
|
||||||
.build()))
|
.build()))
|
||||||
.build(),
|
.build(),
|
||||||
@@ -465,7 +465,7 @@ public class ChangeNotesStateTest {
|
|||||||
ReviewerByEmailSet.fromTable(
|
ReviewerByEmailSet.fromTable(
|
||||||
ImmutableTable.of(
|
ImmutableTable.of(
|
||||||
ReviewerStateInternal.CC,
|
ReviewerStateInternal.CC,
|
||||||
new Address("emailonly@example.com"),
|
Address.create("emailonly@example.com"),
|
||||||
new Timestamp(1212L))))
|
new Timestamp(1212L))))
|
||||||
.build(),
|
.build(),
|
||||||
ChangeNotesStateProto.newBuilder()
|
ChangeNotesStateProto.newBuilder()
|
||||||
@@ -484,8 +484,8 @@ public class ChangeNotesStateTest {
|
|||||||
ImmutableSet<Address> ccs = actual.reviewersByEmail().byState(ReviewerStateInternal.CC);
|
ImmutableSet<Address> ccs = actual.reviewersByEmail().byState(ReviewerStateInternal.CC);
|
||||||
assertThat(ccs).hasSize(1);
|
assertThat(ccs).hasSize(1);
|
||||||
Address address = Iterables.getOnlyElement(ccs);
|
Address address = Iterables.getOnlyElement(ccs);
|
||||||
assertThat(address.getName()).isNull();
|
assertThat(address.name()).isNull();
|
||||||
assertThat(address.getEmail()).isEqualTo("emailonly@example.com");
|
assertThat(address.email()).isEqualTo("emailonly@example.com");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -525,11 +525,11 @@ public class ChangeNotesStateTest {
|
|||||||
ImmutableTable.<ReviewerStateInternal, Address, Timestamp>builder()
|
ImmutableTable.<ReviewerStateInternal, Address, Timestamp>builder()
|
||||||
.put(
|
.put(
|
||||||
ReviewerStateInternal.CC,
|
ReviewerStateInternal.CC,
|
||||||
new Address("Name1", "email1@example.com"),
|
Address.create("Name1", "email1@example.com"),
|
||||||
new Timestamp(1212L))
|
new Timestamp(1212L))
|
||||||
.put(
|
.put(
|
||||||
ReviewerStateInternal.REVIEWER,
|
ReviewerStateInternal.REVIEWER,
|
||||||
new Address("Name2", "email2@example.com"),
|
Address.create("Name2", "email2@example.com"),
|
||||||
new Timestamp(3434L))
|
new Timestamp(3434L))
|
||||||
.build()))
|
.build()))
|
||||||
.build(),
|
.build(),
|
||||||
|
|||||||
@@ -2920,7 +2920,7 @@ public class ChangeNotesTest extends AbstractChangeNotesTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void putReviewerByEmail() throws Exception {
|
public void putReviewerByEmail() throws Exception {
|
||||||
Address adr = new Address("Foo Bar", "foo.bar@gerritcodereview.com");
|
Address adr = Address.create("Foo Bar", "foo.bar@gerritcodereview.com");
|
||||||
|
|
||||||
Change c = newChange();
|
Change c = newChange();
|
||||||
ChangeUpdate update = newUpdate(c, changeOwner);
|
ChangeUpdate update = newUpdate(c, changeOwner);
|
||||||
@@ -2933,7 +2933,7 @@ public class ChangeNotesTest extends AbstractChangeNotesTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void putAndRemoveReviewerByEmail() throws Exception {
|
public void putAndRemoveReviewerByEmail() throws Exception {
|
||||||
Address adr = new Address("Foo Bar", "foo.bar@gerritcodereview.com");
|
Address adr = Address.create("Foo Bar", "foo.bar@gerritcodereview.com");
|
||||||
|
|
||||||
Change c = newChange();
|
Change c = newChange();
|
||||||
ChangeUpdate update = newUpdate(c, changeOwner);
|
ChangeUpdate update = newUpdate(c, changeOwner);
|
||||||
@@ -2950,7 +2950,7 @@ public class ChangeNotesTest extends AbstractChangeNotesTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void putRemoveAndAddBackReviewerByEmail() throws Exception {
|
public void putRemoveAndAddBackReviewerByEmail() throws Exception {
|
||||||
Address adr = new Address("Foo Bar", "foo.bar@gerritcodereview.com");
|
Address adr = Address.create("Foo Bar", "foo.bar@gerritcodereview.com");
|
||||||
|
|
||||||
Change c = newChange();
|
Change c = newChange();
|
||||||
ChangeUpdate update = newUpdate(c, changeOwner);
|
ChangeUpdate update = newUpdate(c, changeOwner);
|
||||||
@@ -2971,8 +2971,8 @@ public class ChangeNotesTest extends AbstractChangeNotesTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void putReviewerByEmailAndCcByEmail() throws Exception {
|
public void putReviewerByEmailAndCcByEmail() throws Exception {
|
||||||
Address adrReviewer = new Address("Foo Bar", "foo.bar@gerritcodereview.com");
|
Address adrReviewer = Address.create("Foo Bar", "foo.bar@gerritcodereview.com");
|
||||||
Address adrCc = new Address("Foo Bor", "foo.bar.2@gerritcodereview.com");
|
Address adrCc = Address.create("Foo Bor", "foo.bar.2@gerritcodereview.com");
|
||||||
|
|
||||||
Change c = newChange();
|
Change c = newChange();
|
||||||
ChangeUpdate update = newUpdate(c, changeOwner);
|
ChangeUpdate update = newUpdate(c, changeOwner);
|
||||||
@@ -2993,7 +2993,7 @@ public class ChangeNotesTest extends AbstractChangeNotesTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void putReviewerByEmailAndChangeToCc() throws Exception {
|
public void putReviewerByEmailAndChangeToCc() throws Exception {
|
||||||
Address adr = new Address("Foo Bar", "foo.bar@gerritcodereview.com");
|
Address adr = Address.create("Foo Bar", "foo.bar@gerritcodereview.com");
|
||||||
|
|
||||||
Change c = newChange();
|
Change c = newChange();
|
||||||
ChangeUpdate update = newUpdate(c, changeOwner);
|
ChangeUpdate update = newUpdate(c, changeOwner);
|
||||||
@@ -3049,8 +3049,8 @@ public class ChangeNotesTest extends AbstractChangeNotesTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void pendingReviewers() throws Exception {
|
public void pendingReviewers() throws Exception {
|
||||||
Address adr1 = new Address("Foo Bar1", "foo.bar1@gerritcodereview.com");
|
Address adr1 = Address.create("Foo Bar1", "foo.bar1@gerritcodereview.com");
|
||||||
Address adr2 = new Address("Foo Bar2", "foo.bar2@gerritcodereview.com");
|
Address adr2 = Address.create("Foo Bar2", "foo.bar2@gerritcodereview.com");
|
||||||
Account.Id ownerId = changeOwner.getAccount().id();
|
Account.Id ownerId = changeOwner.getAccount().id();
|
||||||
Account.Id otherUserId = otherUser.getAccount().id();
|
Account.Id otherUserId = otherUser.getAccount().id();
|
||||||
|
|
||||||
|
|||||||
@@ -388,7 +388,7 @@ public class CommitMessageOutputTest extends AbstractChangeNotesTest {
|
|||||||
Change c = newChange();
|
Change c = newChange();
|
||||||
ChangeUpdate update = newUpdate(c, changeOwner);
|
ChangeUpdate update = newUpdate(c, changeOwner);
|
||||||
update.putReviewerByEmail(
|
update.putReviewerByEmail(
|
||||||
new Address("John Doe", "j.doe@gerritcodereview.com"), ReviewerStateInternal.REVIEWER);
|
Address.create("John Doe", "j.doe@gerritcodereview.com"), ReviewerStateInternal.REVIEWER);
|
||||||
update.commit();
|
update.commit();
|
||||||
|
|
||||||
assertBodyEquals(
|
assertBodyEquals(
|
||||||
@@ -401,7 +401,8 @@ public class CommitMessageOutputTest extends AbstractChangeNotesTest {
|
|||||||
public void ccByEmail() throws Exception {
|
public void ccByEmail() throws Exception {
|
||||||
Change c = newChange();
|
Change c = newChange();
|
||||||
ChangeUpdate update = newUpdate(c, changeOwner);
|
ChangeUpdate update = newUpdate(c, changeOwner);
|
||||||
update.putReviewerByEmail(new Address("j.doe@gerritcodereview.com"), ReviewerStateInternal.CC);
|
update.putReviewerByEmail(
|
||||||
|
Address.create("j.doe@gerritcodereview.com"), ReviewerStateInternal.CC);
|
||||||
update.commit();
|
update.commit();
|
||||||
|
|
||||||
assertBodyEquals(
|
assertBodyEquals(
|
||||||
|
|||||||
Reference in New Issue
Block a user