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.
5 package org.chromium.chrome.browser.identity;
7 import android.test.InstrumentationTestCase;
8 import android.test.suitebuilder.annotation.SmallTest;
10 import org.chromium.base.test.util.Feature;
12 import javax.annotation.Nullable;
14 public class UniqueIdentificationGeneratorFactoryTest extends InstrumentationTestCase {
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"));
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"));
41 @Feature({"ChromeToMobile", "Omaha", "Sync"})
42 public void testGeneratorNotFoundThrows() {
43 UniqueIdentificationGeneratorFactory.clearGeneratorMapForTest();
44 UniqueIdentificationGenerator generator = null;
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);
53 private static class TestGenerator implements UniqueIdentificationGenerator {
55 public String getUniqueId(@Nullable String salt) {