12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)package org.chromium.chrome.browser.identity; 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import android.test.InstrumentationTestCase; 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import android.test.suitebuilder.annotation.SmallTest; 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.chromium.base.test.util.Feature; 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import javax.annotation.Nullable; 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)public class UniqueIdentificationGeneratorFactoryTest extends InstrumentationTestCase { 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @SmallTest 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @Feature({"ChromeToMobile", "Omaha", "Sync"}) 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public void testSetAndGetGenerator() { 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGeneratorFactory.clearGeneratorMapForTest(); 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGenerator gen = new TestGenerator(); 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGeneratorFactory.registerGenerator("generator", gen, false); 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assertEquals(gen, UniqueIdentificationGeneratorFactory.getInstance("generator")); 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @SmallTest 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @Feature({"ChromeToMobile", "Omaha", "Sync"}) 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public void testForceCanOverrideGenerator() { 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGeneratorFactory.clearGeneratorMapForTest(); 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGenerator gen1 = new TestGenerator(); 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGenerator gen2 = new TestGenerator(); 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGenerator gen3 = new TestGenerator(); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGeneratorFactory.registerGenerator("generator", gen1, false); 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assertEquals(gen1, UniqueIdentificationGeneratorFactory.getInstance("generator")); 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGeneratorFactory.registerGenerator("generator", gen2, false); 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assertEquals(gen1, UniqueIdentificationGeneratorFactory.getInstance("generator")); 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGeneratorFactory.registerGenerator("generator", gen3, true); 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assertEquals(gen3, UniqueIdentificationGeneratorFactory.getInstance("generator")); 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @SmallTest 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @Feature({"ChromeToMobile", "Omaha", "Sync"}) 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public void testGeneratorNotFoundThrows() { 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGeneratorFactory.clearGeneratorMapForTest(); 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) UniqueIdentificationGenerator generator = null; 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) try { 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) generator = UniqueIdentificationGeneratorFactory.getInstance("generator"); 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) fail("The generator does not exist, so factory should throw an error."); 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } catch (RuntimeException e) { 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) assertEquals(null, generator); 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private static class TestGenerator implements UniqueIdentificationGenerator { 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) @Override 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public String getUniqueId(@Nullable String salt) { 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return null; 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 60