- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / android / javatests / src / org / chromium / chrome / browser / identity / UniqueIdentificationGeneratorFactoryTest.java
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.identity;
6
7 import android.test.InstrumentationTestCase;
8 import android.test.suitebuilder.annotation.SmallTest;
9
10 import org.chromium.base.test.util.Feature;
11
12 import javax.annotation.Nullable;
13
14 public class UniqueIdentificationGeneratorFactoryTest extends InstrumentationTestCase {
15
16     @SmallTest
17     @Feature({"ChromeToMobile", "Omaha", "Sync"})
18     public void testSetAndGetGenerator() {
19         UniqueIdentificationGeneratorFactory.clearGeneratorMapForTest();
20         UniqueIdentificationGenerator gen = new TestGenerator();
21         UniqueIdentificationGeneratorFactory.registerGenerator("generator", gen, false);
22         assertEquals(gen, UniqueIdentificationGeneratorFactory.getInstance("generator"));
23     }
24
25     @SmallTest
26     @Feature({"ChromeToMobile", "Omaha", "Sync"})
27     public void testForceCanOverrideGenerator() {
28         UniqueIdentificationGeneratorFactory.clearGeneratorMapForTest();
29         UniqueIdentificationGenerator gen1 = new TestGenerator();
30         UniqueIdentificationGenerator gen2 = new TestGenerator();
31         UniqueIdentificationGenerator gen3 = new TestGenerator();
32         UniqueIdentificationGeneratorFactory.registerGenerator("generator", gen1, false);
33         assertEquals(gen1, UniqueIdentificationGeneratorFactory.getInstance("generator"));
34         UniqueIdentificationGeneratorFactory.registerGenerator("generator", gen2, false);
35         assertEquals(gen1, UniqueIdentificationGeneratorFactory.getInstance("generator"));
36         UniqueIdentificationGeneratorFactory.registerGenerator("generator", gen3, true);
37         assertEquals(gen3, UniqueIdentificationGeneratorFactory.getInstance("generator"));
38     }
39
40     @SmallTest
41     @Feature({"ChromeToMobile", "Omaha", "Sync"})
42     public void testGeneratorNotFoundThrows() {
43         UniqueIdentificationGeneratorFactory.clearGeneratorMapForTest();
44         UniqueIdentificationGenerator generator = null;
45         try {
46             generator = UniqueIdentificationGeneratorFactory.getInstance("generator");
47             fail("The generator does not exist, so factory should throw an error.");
48         } catch (RuntimeException e) {
49             assertEquals(null, generator);
50         }
51     }
52
53     private static class TestGenerator implements UniqueIdentificationGenerator {
54         @Override
55         public String getUniqueId(@Nullable String salt) {
56             return null;
57         }
58     }
59 }