|
|
@@ -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)
|
|
|
}
|