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