Audrius Butkevicius 11 yıl önce
ebeveyn
işleme
223741820d

+ 8 - 157
config/config_test.go

@@ -5,8 +5,6 @@
 package config
 
 import (
-	"bytes"
-	"io"
 	"os"
 	"reflect"
 	"testing"
@@ -40,10 +38,7 @@ func TestDefaultValues(t *testing.T) {
 		UPnPRenewal:        30,
 	}
 
-	cfg, err := Load(bytes.NewReader(nil), node1)
-	if err != io.EOF {
-		t.Error(err)
-	}
+	cfg := New("test", node1)
 
 	if !reflect.DeepEqual(cfg.Options, expected) {
 		t.Errorf("Default config differs;\n  E: %#v\n  A: %#v", expected, cfg.Options)
@@ -51,84 +46,8 @@ func TestDefaultValues(t *testing.T) {
 }
 
 func TestNodeConfig(t *testing.T) {
-	v1data := []byte(`
-<configuration version="1">
-    <repository id="test" directory="~/Sync">
-        <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ" name="node one">
-            <address>a</address>
-        </node>
-        <node id="P56IOI7MZJNU2IQGDREYDM2MGTMGL3BXNPQ6W5BTBBZ4TJXZWICQ" name="node two">
-            <address>b</address>
-        </node>
-        <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ" name="node one">
-            <address>a</address>
-        </node>
-        <node id="P56IOI7MZJNU2IQGDREYDM2MGTMGL3BXNPQ6W5BTBBZ4TJXZWICQ" name="node two">
-            <address>b</address>
-        </node>
-    </repository>
-    <options>
-        <readOnly>true</readOnly>
-        <rescanIntervalS>600</rescanIntervalS>
-    </options>
-</configuration>
-`)
-
-	v2data := []byte(`
-<configuration version="2">
-    <repository id="test" directory="~/Sync" ro="true">
-        <node id="P56IOI7MZJNU2IQGDREYDM2MGTMGL3BXNPQ6W5BTBBZ4TJXZWICQ"/>
-        <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ"/>
-        <node id="C4YBIESWDUAIGU62GOSRXCRAAJDWVE3TKCPMURZE2LH5QHAF576A"/>
-        <node id="P56IOI7MZJNU2IQGDREYDM2MGTMGL3BXNPQ6W5BTBBZ4TJXZWICQ"/>
-        <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ"/>
-        <node id="C4YBIESWDUAIGU62GOSRXCRAAJDWVE3TKCPMURZE2LH5QHAF576A"/>
-    </repository>
-    <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ" name="node one">
-        <address>a</address>
-    </node>
-    <node id="P56IOI7MZJNU2IQGDREYDM2MGTMGL3BXNPQ6W5BTBBZ4TJXZWICQ" name="node two">
-        <address>b</address>
-    </node>
-    <options>
-        <rescanIntervalS>600</rescanIntervalS>
-    </options>
-</configuration>
-`)
-
-	v3data := []byte(`
-<configuration version="3">
-    <repository id="test" directory="~/Sync" ro="true" ignorePerms="false">
-        <node id="AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR" compression="false"></node>
-        <node id="P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2" compression="false"></node>
-    </repository>
-    <node id="AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR" name="node one" compression="true">
-        <address>a</address>
-    </node>
-    <node id="P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2" name="node two" compression="true">
-        <address>b</address>
-    </node>
-    <options>
-        <rescanIntervalS>600</rescanIntervalS>
-    </options>
-</configuration>`)
-
-	v4data := []byte(`
-<configuration version="4">
-    <repository id="test" directory="~/Sync" ro="true" ignorePerms="false" rescanIntervalS="600">
-        <node id="AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR"></node>
-        <node id="P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2"></node>
-    </repository>
-    <node id="AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR" name="node one" compression="true">
-        <address>a</address>
-    </node>
-    <node id="P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2" name="node two" compression="true">
-        <address>b</address>
-    </node>
-</configuration>`)
-
-	for i, data := range [][]byte{v1data, v2data, v3data, v4data} {
-		cfg, err := Load(bytes.NewReader(data), node1)
+	for i, ver := range []string{"v1", "v2", "v3", "v4"} {
+		cfg, err := Load("testdata/"+ver+".xml", node1)
 		if err != nil {
 			t.Error(err)
 		}
@@ -181,14 +100,7 @@ func TestNodeConfig(t *testing.T) {
 }
 
 func TestNoListenAddress(t *testing.T) {
-	data := []byte(`<configuration version="1">
-    <options>
-        <listenAddress></listenAddress>
-    </options>
-</configuration>
-`)
-
-	cfg, err := Load(bytes.NewReader(data), node1)
+	cfg, err := Load("testdata/nolistenaddress.xml", node1)
 	if err != nil {
 		t.Error(err)
 	}
@@ -200,26 +112,6 @@ func TestNoListenAddress(t *testing.T) {
 }
 
 func TestOverriddenValues(t *testing.T) {
-	data := []byte(`<configuration version="2">
-    <options>
-       <listenAddress>:23000</listenAddress>
-        <allowDelete>false</allowDelete>
-        <globalAnnounceServer>syncthing.nym.se:22026</globalAnnounceServer>
-        <globalAnnounceEnabled>false</globalAnnounceEnabled>
-        <localAnnounceEnabled>false</localAnnounceEnabled>
-        <localAnnouncePort>42123</localAnnouncePort>
-        <localAnnounceMCAddr>quux:3232</localAnnounceMCAddr>
-        <parallelRequests>32</parallelRequests>
-        <maxSendKbps>1234</maxSendKbps>
-        <reconnectionIntervalS>6000</reconnectionIntervalS>
-        <startBrowser>false</startBrowser>
-        <upnpEnabled>false</upnpEnabled>
-        <upnpLeaseMinutes>60</upnpLeaseMinutes>
-        <upnpRenewalMinutes>15</upnpRenewalMinutes>
-    </options>
-</configuration>
-`)
-
 	expected := OptionsConfiguration{
 		ListenAddress:      []string{":23000"},
 		GlobalAnnServer:    "syncthing.nym.se:22026",
@@ -236,7 +128,7 @@ func TestOverriddenValues(t *testing.T) {
 		UPnPRenewal:        15,
 	}
 
-	cfg, err := Load(bytes.NewReader(data), node1)
+	cfg, err := Load("testdata/overridenvalues.xml", node1)
 	if err != nil {
 		t.Error(err)
 	}
@@ -247,19 +139,6 @@ func TestOverriddenValues(t *testing.T) {
 }
 
 func TestNodeAddressesDynamic(t *testing.T) {
-	data := []byte(`
-<configuration version="2">
-    <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ">
-        <address></address>
-    </node>
-    <node id="GYRZZQBIRNPV4T7TC52WEQYJ3TFDQW6MWDFLMU4SSSU6EMFBK2VA">
-    </node>
-    <node id="LGFPDIT7SKNNJVJZA4FC7QNCRKCE753K72BW5QD2FOZ7FRFEP57Q">
-        <address>dynamic</address>
-    </node>
-</configuration>
-`)
-
 	name, _ := os.Hostname()
 	expected := []NodeConfiguration{
 		{
@@ -284,7 +163,7 @@ func TestNodeAddressesDynamic(t *testing.T) {
 		},
 	}
 
-	cfg, err := Load(bytes.NewReader(data), node4)
+	cfg, err := Load("testdata/nodeaddressesdynamic.xml", node4)
 	if err != nil {
 		t.Error(err)
 	}
@@ -295,23 +174,6 @@ func TestNodeAddressesDynamic(t *testing.T) {
 }
 
 func TestNodeAddressesStatic(t *testing.T) {
-	data := []byte(`
-<configuration version="3">
-    <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ">
-        <address>192.0.2.1</address>
-        <address>192.0.2.2</address>
-    </node>
-    <node id="GYRZZQBIRNPV4T7TC52WEQYJ3TFDQW6MWDFLMU4SSSU6EMFBK2VA">
-        <address>192.0.2.3:6070</address>
-        <address>[2001:db8::42]:4242</address>
-    </node>
-    <node id="LGFPDIT7SKNNJVJZA4FC7QNCRKCE753K72BW5QD2FOZ7FRFEP57Q">
-        <address>[2001:db8::44]:4444</address>
-        <address>192.0.2.4:6090</address>
-    </node>
-</configuration>
-`)
-
 	name, _ := os.Hostname()
 	expected := []NodeConfiguration{
 		{
@@ -333,7 +195,7 @@ func TestNodeAddressesStatic(t *testing.T) {
 		},
 	}
 
-	cfg, err := Load(bytes.NewReader(data), node4)
+	cfg, err := Load("testdata/nodeaddressesstatic.xml", node4)
 	if err != nil {
 		t.Error(err)
 	}
@@ -344,18 +206,7 @@ func TestNodeAddressesStatic(t *testing.T) {
 }
 
 func TestVersioningConfig(t *testing.T) {
-	data := []byte(`
-		<configuration version="2">
-			<repository id="test" directory="~/Sync" ro="true">
-				<versioning type="simple">
-					<param key="foo" val="bar"/>
-					<param key="baz" val="quux"/>
-				</versioning>
-			</repository>
-		</configuration>
-		`)
-
-	cfg, err := Load(bytes.NewReader(data), node4)
+	cfg, err := Load("testdata/versioningconfig.xml", node4)
 	if err != nil {
 		t.Error(err)
 	}

+ 10 - 0
config/testdata/nodeaddressesdynamic.xml

@@ -0,0 +1,10 @@
+<configuration version="2">
+    <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ">
+        <address></address>
+    </node>
+    <node id="GYRZZQBIRNPV4T7TC52WEQYJ3TFDQW6MWDFLMU4SSSU6EMFBK2VA">
+    </node>
+    <node id="LGFPDIT7SKNNJVJZA4FC7QNCRKCE753K72BW5QD2FOZ7FRFEP57Q">
+        <address>dynamic</address>
+    </node>
+</configuration>

+ 14 - 0
config/testdata/nodeaddressesstatic.xml

@@ -0,0 +1,14 @@
+<configuration version="3">
+    <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ">
+        <address>192.0.2.1</address>
+        <address>192.0.2.2</address>
+    </node>
+    <node id="GYRZZQBIRNPV4T7TC52WEQYJ3TFDQW6MWDFLMU4SSSU6EMFBK2VA">
+        <address>192.0.2.3:6070</address>
+        <address>[2001:db8::42]:4242</address>
+    </node>
+    <node id="LGFPDIT7SKNNJVJZA4FC7QNCRKCE753K72BW5QD2FOZ7FRFEP57Q">
+        <address>[2001:db8::44]:4444</address>
+        <address>192.0.2.4:6090</address>
+    </node>
+</configuration>

+ 5 - 0
config/testdata/nolistenaddress.xml

@@ -0,0 +1,5 @@
+<configuration version="1">
+    <options>
+        <listenAddress></listenAddress>
+    </options>
+</configuration>

+ 18 - 0
config/testdata/overridenvalues.xml

@@ -0,0 +1,18 @@
+<configuration version="2">
+    <options>
+       <listenAddress>:23000</listenAddress>
+        <allowDelete>false</allowDelete>
+        <globalAnnounceServer>syncthing.nym.se:22026</globalAnnounceServer>
+        <globalAnnounceEnabled>false</globalAnnounceEnabled>
+        <localAnnounceEnabled>false</localAnnounceEnabled>
+        <localAnnouncePort>42123</localAnnouncePort>
+        <localAnnounceMCAddr>quux:3232</localAnnounceMCAddr>
+        <parallelRequests>32</parallelRequests>
+        <maxSendKbps>1234</maxSendKbps>
+        <reconnectionIntervalS>6000</reconnectionIntervalS>
+        <startBrowser>false</startBrowser>
+        <upnpEnabled>false</upnpEnabled>
+        <upnpLeaseMinutes>60</upnpLeaseMinutes>
+        <upnpRenewalMinutes>15</upnpRenewalMinutes>
+    </options>
+</configuration>

+ 20 - 0
config/testdata/v1.xml

@@ -0,0 +1,20 @@
+<configuration version="1">
+    <repository id="test" directory="~/Sync">
+        <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ" name="node one">
+            <address>a</address>
+        </node>
+        <node id="P56IOI7MZJNU2IQGDREYDM2MGTMGL3BXNPQ6W5BTBBZ4TJXZWICQ" name="node two">
+            <address>b</address>
+        </node>
+        <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ" name="node one">
+            <address>a</address>
+        </node>
+        <node id="P56IOI7MZJNU2IQGDREYDM2MGTMGL3BXNPQ6W5BTBBZ4TJXZWICQ" name="node two">
+            <address>b</address>
+        </node>
+    </repository>
+    <options>
+        <readOnly>true</readOnly>
+        <rescanIntervalS>600</rescanIntervalS>
+    </options>
+</configuration>

+ 19 - 0
config/testdata/v2.xml

@@ -0,0 +1,19 @@
+<configuration version="2">
+    <repository id="test" directory="~/Sync" ro="true">
+        <node id="P56IOI7MZJNU2IQGDREYDM2MGTMGL3BXNPQ6W5BTBBZ4TJXZWICQ"/>
+        <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ"/>
+        <node id="C4YBIESWDUAIGU62GOSRXCRAAJDWVE3TKCPMURZE2LH5QHAF576A"/>
+        <node id="P56IOI7MZJNU2IQGDREYDM2MGTMGL3BXNPQ6W5BTBBZ4TJXZWICQ"/>
+        <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ"/>
+        <node id="C4YBIESWDUAIGU62GOSRXCRAAJDWVE3TKCPMURZE2LH5QHAF576A"/>
+    </repository>
+    <node id="AIR6LPZ7K4PTTUXQSMUUCPQ5YWOEDFIIQJUG7772YQXXR5YD6AWQ" name="node one">
+        <address>a</address>
+    </node>
+    <node id="P56IOI7MZJNU2IQGDREYDM2MGTMGL3BXNPQ6W5BTBBZ4TJXZWICQ" name="node two">
+        <address>b</address>
+    </node>
+    <options>
+        <rescanIntervalS>600</rescanIntervalS>
+    </options>
+</configuration>

+ 15 - 0
config/testdata/v3.xml

@@ -0,0 +1,15 @@
+<configuration version="3">
+    <repository id="test" directory="~/Sync" ro="true" ignorePerms="false">
+        <node id="AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR" compression="false"></node>
+        <node id="P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2" compression="false"></node>
+    </repository>
+    <node id="AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR" name="node one" compression="true">
+        <address>a</address>
+    </node>
+    <node id="P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2" name="node two" compression="true">
+        <address>b</address>
+    </node>
+    <options>
+        <rescanIntervalS>600</rescanIntervalS>
+    </options>
+</configuration>

+ 12 - 0
config/testdata/v4.xml

@@ -0,0 +1,12 @@
+<configuration version="4">
+    <repository id="test" directory="~/Sync" ro="true" ignorePerms="false" rescanIntervalS="600">
+        <node id="AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR"></node>
+        <node id="P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2"></node>
+    </repository>
+    <node id="AIR6LPZ-7K4PTTV-UXQSMUU-CPQ5YWH-OEDFIIQ-JUG777G-2YQXXR5-YD6AWQR" name="node one" compression="true">
+        <address>a</address>
+    </node>
+    <node id="P56IOI7-MZJNU2Y-IQGDREY-DM2MGTI-MGL3BXN-PQ6W5BM-TBBZ4TJ-XZWICQ2" name="node two" compression="true">
+        <address>b</address>
+    </node>
+</configuration>

+ 8 - 0
config/testdata/versioningconfig.xml

@@ -0,0 +1,8 @@
+<configuration version="2">
+    <repository id="test" directory="~/Sync" ro="true">
+        <versioning type="simple">
+            <param key="foo" val="bar"/>
+            <param key="baz" val="quux"/>
+        </versioning>
+    </repository>
+</configuration>

+ 1 - 1
model/model_test.go

@@ -266,7 +266,7 @@ func TestNodeRename(t *testing.T) {
 		ClientVersion: "v0.9.4",
 	}
 
-	cfg, _ := config.Load(nil, node1)
+	cfg := config.New("test", node1)
 	cfg.Nodes = []config.NodeConfiguration{
 		{
 			NodeID: node1,