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 5package org.chromium.chrome.browser.identity; 6 7import android.test.InstrumentationTestCase; 8import android.test.suitebuilder.annotation.SmallTest; 9 10import org.chromium.base.test.util.Feature; 11 12import javax.annotation.Nullable; 13 14public 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} 60