|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 package org.mozilla.gecko.background.testhelpers; |
|
5 |
|
6 import java.io.IOException; |
|
7 import java.util.HashMap; |
|
8 |
|
9 import org.json.simple.parser.ParseException; |
|
10 import org.mozilla.gecko.sync.EngineSettings; |
|
11 import org.mozilla.gecko.sync.NonObjectJSONException; |
|
12 import org.mozilla.gecko.sync.SyncConfiguration; |
|
13 import org.mozilla.gecko.sync.SyncConfigurationException; |
|
14 import org.mozilla.gecko.sync.crypto.KeyBundle; |
|
15 import org.mozilla.gecko.sync.delegates.GlobalSessionCallback; |
|
16 import org.mozilla.gecko.sync.net.BasicAuthHeaderProvider; |
|
17 import org.mozilla.gecko.sync.stage.CompletedStage; |
|
18 import org.mozilla.gecko.sync.stage.GlobalSyncStage; |
|
19 import org.mozilla.gecko.sync.stage.GlobalSyncStage.Stage; |
|
20 |
|
21 |
|
22 public class MockGlobalSession extends MockPrefsGlobalSession { |
|
23 |
|
24 public MockGlobalSession(String username, String password, KeyBundle keyBundle, GlobalSessionCallback callback) throws SyncConfigurationException, IllegalArgumentException, NonObjectJSONException, IOException, ParseException { |
|
25 this(new SyncConfiguration(username, new BasicAuthHeaderProvider(username, password), new MockSharedPreferences(), keyBundle), callback); |
|
26 } |
|
27 |
|
28 public MockGlobalSession(SyncConfiguration config, GlobalSessionCallback callback) |
|
29 throws SyncConfigurationException, IllegalArgumentException, IOException, ParseException, NonObjectJSONException { |
|
30 super(config, callback, null, null); |
|
31 } |
|
32 |
|
33 @Override |
|
34 public boolean isEngineRemotelyEnabled(String engine, EngineSettings engineSettings) { |
|
35 return false; |
|
36 } |
|
37 |
|
38 @Override |
|
39 protected void prepareStages() { |
|
40 super.prepareStages(); |
|
41 HashMap<Stage, GlobalSyncStage> newStages = new HashMap<Stage, GlobalSyncStage>(this.stages); |
|
42 |
|
43 for (Stage stage : this.stages.keySet()) { |
|
44 newStages.put(stage, new MockServerSyncStage()); |
|
45 } |
|
46 |
|
47 // This signals that the global session is complete. |
|
48 newStages.put(Stage.completed, new CompletedStage()); |
|
49 |
|
50 this.stages = newStages; |
|
51 } |
|
52 |
|
53 public MockGlobalSession withStage(Stage stage, GlobalSyncStage syncStage) { |
|
54 stages.put(stage, syncStage); |
|
55 |
|
56 return this; |
|
57 } |
|
58 } |