annotate test/org/tmatesoft/hg/test/TestConfigFiles.java @ 709:497e697636fc

Report merged lines as changed block if possible, not as a sequence of added/deleted blocks. To facilitate access to merge parent lines AddBlock got mergeLineAt() method that reports index of the line in the second parent (if any), while insertedAt() has been changed to report index in the first parent always
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Wed, 21 Aug 2013 16:23:27 +0200
parents 7fc7fba4df30
children
rev   line source
609
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
1 /*
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
2 * Copyright (c) 2013 TMate Software Ltd
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
3 *
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
4 * This program is free software; you can redistribute it and/or modify
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
6 * the Free Software Foundation; version 2 of the License.
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
7 *
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
8 * This program is distributed in the hope that it will be useful,
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
11 * GNU General Public License for more details.
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
12 *
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
13 * For information on how to redistribute this software under
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
14 * the terms of a license other than GNU General Public License
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
15 * contact TMate Software at support@hg4j.com
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
16 */
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
17 package org.tmatesoft.hg.test;
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
18
611
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
19 import static org.junit.Assert.*;
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
20
609
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
21 import java.io.File;
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
22 import java.util.HashMap;
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
23 import java.util.Map;
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
24
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
25 import org.junit.Rule;
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
26 import org.junit.Test;
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
27 import org.tmatesoft.hg.internal.BasicSessionContext;
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
28 import org.tmatesoft.hg.internal.ConfigFile;
611
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
29 import org.tmatesoft.hg.repo.HgInternals;
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
30 import org.tmatesoft.hg.repo.HgLookup;
609
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
31 import org.tmatesoft.hg.repo.HgRepoConfig;
611
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
32 import org.tmatesoft.hg.repo.HgRepoConfig.ExtensionsSection;
609
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
33 import org.tmatesoft.hg.repo.HgRepoConfig.PathsSection;
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
34 import org.tmatesoft.hg.repo.HgRepoConfig.Section;
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
35 import org.tmatesoft.hg.repo.HgRepository;
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
36
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
37 /**
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
38 *
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
39 * @author Artem Tikhomirov
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
40 * @author TMate Software Ltd.
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
41 */
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
42 public class TestConfigFiles {
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
43
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
44 @Rule
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
45 public ErrorCollectorExt errorCollector = new ErrorCollectorExt();
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
46
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
47 @Test
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
48 public void testConfigFile() throws Exception {
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
49 ConfigFile configFile = new ConfigFile(new BasicSessionContext(null));
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
50 configFile.addLocation(new File(Configuration.get().getTestDataDir(), "sample.rc"));
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
51 // section1 has key1 unset, key2 overridden from included, key4 from second occurence
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
52 HashMap<String, String> section1 = new HashMap<String, String>();
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
53 section1.put("key2", "alternative value 2");
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
54 section1.put("key3", "value 3");
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
55 section1.put("key4", "value 4");
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
56 // section2 comes from included config
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
57 HashMap<String, String> section2 = new HashMap<String, String>();
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
58 section2.put("key1", "value 1-2");
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
59 HashMap<String, String> section3 = new HashMap<String, String>();
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
60 section3.put("key1", "value 1-3");
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
61 HashMap<String, HashMap<String,String>> sections = new HashMap<String, HashMap<String,String>>();
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
62 sections.put("section1", section1);
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
63 sections.put("section2", section2);
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
64 sections.put("section3", section3);
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
65 //
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
66 for (String s : configFile.getSectionNames()) {
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
67 // System.out.printf("[%s]\n", s);
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
68 final HashMap<String, String> m = sections.remove(s);
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
69 errorCollector.assertTrue(m != null);
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
70 for (Map.Entry<String, String> e : configFile.getSection(s).entrySet()) {
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
71 // System.out.printf("%s = %s\n", e.getKey(), e.getValue());
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
72 if (m.containsKey(e.getKey())) {
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
73 errorCollector.assertEquals(m.remove(e.getKey()), e.getValue());
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
74 } else {
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
75 errorCollector.fail("Unexpected key:" + e.getKey());
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
76 }
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
77 }
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
78 }
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
79 errorCollector.assertEquals(0, sections.size());
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
80 errorCollector.assertEquals(0, section1.size());
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
81 errorCollector.assertEquals(0, section2.size());
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
82 errorCollector.assertEquals(0, section3.size());
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
83 }
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
84
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
85 @Test
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
86 public void testRepositoryConfig() throws Exception {
611
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
87 File repoLoc = RepoUtils.cloneRepoToTempLocation("log-1", "test-repocfg", false);
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
88 File hgrc = new File(repoLoc, ".hg/hgrc");
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
89 String username = "John Q. Public <john.public@acme.com>";
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
90 String path1_key = "hg4j.gc";
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
91 String path1_value = "https://code.google.com/p/hg4j/";
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
92 String ext1_key = "ext.one";
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
93 String ext2_key = "ext.disabled"; // disabled
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
94 String ext3_key = "hgext.two"; // check if found by "two" key
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
95 String hgrcContent = String.format("#comment\n[ui]\nusername = %s\n\n[paths]\n%s = %s\ndefault=%3$s\n\n[extensions]\n%s = \n%s = !\n%s=\n", username, path1_key, path1_value, ext1_key, ext2_key, ext3_key);
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
96 RepoUtils.createFile(hgrc, hgrcContent);
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
97 //
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
98 HgRepository repo = new HgLookup().detect(repoLoc);
609
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
99 final HgRepoConfig cfg = repo.getConfiguration();
611
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
100 assertNotNull(cfg.getPaths());
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
101 assertNotNull(cfg.getExtensions());
609
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
102 final Section dne = cfg.getSection("does-not-exist");
611
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
103 assertNotNull(dne);
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
104 assertFalse(dne.exists());
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
105 assertEquals(username, cfg.getSection("ui").getString("username", null));
609
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
106 final PathsSection p = cfg.getPaths();
611
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
107 assertTrue(p.getPathSymbolicNames().contains(path1_key));
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
108 assertEquals(path1_value, p.getString(path1_key, null));
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
109 assertTrue(p.hasDefault());
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
110 assertEquals(path1_value, p.getDefault());
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
111 assertFalse(p.hasDefault() ^ p.getDefault() != null);
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
112 assertFalse(p.hasDefaultPush() ^ p.getDefaultPush() != null);
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
113 final ExtensionsSection e = cfg.getExtensions();
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
114 assertTrue(e.isEnabled(ext1_key));
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
115 assertTrue(e.getString(ext2_key, null).length() > 0);
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
116 assertFalse(e.isEnabled(ext2_key));
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
117 assertNotNull(e.getString(ext3_key, null));
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
118 assertTrue(e.isEnabled(ext3_key.substring("hgext.".length())));
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
119 //
7fc7fba4df30 Tests for tailored sections in HgRepoConfig
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents: 609
diff changeset
120 assertEquals(username, new HgInternals(repo).getNextCommitUsername());
609
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
121 }
e4a71afd3c71 Test TODOs: test for ConfigFile (covering %include and %unset directives)
Artem Tikhomirov <tikhomirov.artem@gmail.com>
parents:
diff changeset
122 }