1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 package org.mozilla.gecko.sync.repositories.domain.test; 5 6 import org.junit.Test; 7 import org.junit.runner.RunWith; 8 import org.mozilla.gecko.background.testhelpers.TestRunner; 9 import org.mozilla.gecko.sync.CryptoRecord; 10 import org.mozilla.gecko.sync.Utils; 11 import org.mozilla.gecko.sync.repositories.domain.FormHistoryRecord; 12 13 import static org.junit.Assert.assertEquals; 14 import static org.junit.Assert.assertFalse; 15 import static org.junit.Assert.assertTrue; 16 17 @RunWith(TestRunner.class) 18 public class TestFormHistoryRecord { withIdFieldNameAndValue(long id, String fieldName, String value)19 public static FormHistoryRecord withIdFieldNameAndValue(long id, String fieldName, String value) { 20 FormHistoryRecord fr = new FormHistoryRecord(); 21 fr.androidID = id; 22 fr.fieldName = fieldName; 23 fr.fieldValue = value; 24 25 return fr; 26 } 27 28 @Test testCollection()29 public void testCollection() { 30 FormHistoryRecord fr = new FormHistoryRecord(); 31 assertEquals("forms", fr.collection); 32 } 33 34 @Test testGetPayload()35 public void testGetPayload() { 36 FormHistoryRecord fr = withIdFieldNameAndValue(0, "username", "aUsername"); 37 CryptoRecord rec = fr.getEnvelope(); 38 assertEquals("username", rec.payload.get("name")); 39 assertEquals("aUsername", rec.payload.get("value")); 40 } 41 42 @Test testCopyWithIDs()43 public void testCopyWithIDs() { 44 FormHistoryRecord fr = withIdFieldNameAndValue(0, "username", "aUsername"); 45 String guid = Utils.generateGuid(); 46 FormHistoryRecord fr2 = (FormHistoryRecord)fr.copyWithIDs(guid, 9999); 47 assertEquals(guid, fr2.guid); 48 assertEquals(9999, fr2.androidID); 49 assertEquals(fr.fieldName, fr2.fieldName); 50 assertEquals(fr.fieldValue, fr2.fieldValue); 51 } 52 53 @Test testEquals()54 public void testEquals() { 55 FormHistoryRecord fr1a = withIdFieldNameAndValue(0, "username1", "Alice"); 56 FormHistoryRecord fr1b = withIdFieldNameAndValue(0, "username1", "Bob"); 57 FormHistoryRecord fr2a = withIdFieldNameAndValue(0, "username2", "Alice"); 58 FormHistoryRecord fr2b = withIdFieldNameAndValue(0, "username2", "Bob"); 59 60 assertFalse(fr1a.equals(fr1b)); 61 assertFalse(fr1a.equals(fr2a)); 62 assertFalse(fr1a.equals(fr2b)); 63 assertFalse(fr1b.equals(fr2a)); 64 assertFalse(fr1b.equals(fr2b)); 65 assertFalse(fr2a.equals(fr2b)); 66 67 assertFalse(fr1a.equals(withIdFieldNameAndValue(fr1a.androidID, fr1a.fieldName, fr1b.fieldValue))); 68 assertFalse(fr1a.equals(fr1a.copyWithIDs(fr2a.guid, 9999))); 69 assertTrue(fr1a.equals(fr1a)); 70 } 71 72 @Test testEqualsForDeleted()73 public void testEqualsForDeleted() { 74 FormHistoryRecord fr1 = withIdFieldNameAndValue(0, "username1", "Alice"); 75 FormHistoryRecord fr2 = (FormHistoryRecord)fr1.copyWithIDs(fr1.guid, fr1.androidID); 76 assertTrue(fr1.equals(fr2)); 77 fr1.deleted = true; 78 assertFalse(fr1.equals(fr2)); 79 fr2.deleted = true; 80 assertTrue(fr1.equals(fr2)); 81 FormHistoryRecord fr3 = (FormHistoryRecord)fr2.copyWithIDs(Utils.generateGuid(), 9999); 82 assertFalse(fr2.equals(fr3)); 83 } 84 85 @Test testTTL()86 public void testTTL() { 87 FormHistoryRecord fr = withIdFieldNameAndValue(0, "username", "aUsername"); 88 assertEquals(FormHistoryRecord.FORMS_TTL, fr.ttl); 89 CryptoRecord rec = fr.getEnvelope(); 90 assertEquals(FormHistoryRecord.FORMS_TTL, rec.ttl); 91 } 92 } 93