wangzhibo
2026-08-16 ae6f40460dcd56af6c5f60ba52c883854c3bac55
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package nodomain.freeyourgadget.gadgetbridge.util;
 
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
 
import android.content.Context;
import android.content.SharedPreferences;
 
import org.junit.Test;
 
import java.io.File;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
 
import nodomain.freeyourgadget.gadgetbridge.test.TestBase;
 
public class ImportExportSharedPreferencesTest extends TestBase {
    @Test
    public void testExportImport() throws Exception {
        final SharedPreferences sharedPreferences = getContext().getSharedPreferences("testExportImport", Context.MODE_PRIVATE);
 
        assertEquals(0, sharedPreferences.getAll().size());
 
        final HashSet<String> EXPECTED_SET = new HashSet<>(Arrays.asList(
                "item 1",
                "item 2"
        ));
 
        sharedPreferences.edit()
                .putString("a_string", "Hello")
                .putBoolean("a_boolean", true)
                .putLong("a_long", 42)
                .putInt("an_int", 1337)
                .putFloat("a_float", 7f)
                .putStringSet("bip_display_items", EXPECTED_SET).commit();
 
        assertEquals(6, sharedPreferences.getAll().size());
 
        final File file = File.createTempFile("gb-ImportExportSharedPreferencesTest", "xml");
        file.deleteOnExit();
        ImportExportSharedPreferences.exportToFile(sharedPreferences, file);
 
        sharedPreferences.edit()
                .putInt("an_int", 3)
                .putString("this extra string", "should be gone after import")
                .commit();
 
        assertEquals(7, sharedPreferences.getAll().size());
        ImportExportSharedPreferences.importFromFile(sharedPreferences, file);
 
        assertEquals(6, sharedPreferences.getAll().size());
        assertEquals("Hello", sharedPreferences.getString("a_string", null));
        assertTrue(sharedPreferences.getBoolean("a_boolean", false));
        assertEquals(42, sharedPreferences.getLong("a_long", 0));
        assertEquals(1337, sharedPreferences.getInt("an_int", 0));
        assertEquals(7f, sharedPreferences.getFloat("a_float", 0), 0.01);
 
        final Set<String> actualSet = sharedPreferences.getStringSet("bip_display_items", Collections.emptySet());
        assertEquals(EXPECTED_SET.size(), actualSet.size());
        assertTrue(EXPECTED_SET.containsAll(actualSet));
        assertTrue(actualSet.containsAll(EXPECTED_SET));
    }
}