mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
New provider: Loopia DNS service provider (#2140)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
This commit is contained in:
640
providers/loopia/mock_test.go
Normal file
640
providers/loopia/mock_test.go
Normal file
@ -0,0 +1,640 @@
|
||||
package loopia
|
||||
|
||||
const (
|
||||
exampleDomain = "example.com"
|
||||
exampleSubDomain = "_acme-challenge"
|
||||
exampleRdata = "LHDhK3oGRvkiefQnx7OOczTY5Tic_xZ6HcMOc_gmtoM"
|
||||
)
|
||||
|
||||
// Testdata based on real traffic between an xml-rpc client and the api.
|
||||
const responseOk = `<?xml version="1.0" encoding="UTF-8"?>
|
||||
<methodResponse>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>
|
||||
OK
|
||||
</string>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodResponse>`
|
||||
|
||||
const responseAuthError = `<?xml version="1.0" encoding="UTF-8"?>
|
||||
<methodResponse>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>
|
||||
AUTH_ERROR
|
||||
</string>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodResponse>`
|
||||
|
||||
const responseUnknownError = `<?xml version="1.0" encoding="UTF-8"?>
|
||||
<methodResponse>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>
|
||||
UNKNOWN_ERROR
|
||||
</string>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodResponse>`
|
||||
|
||||
const responseRPCError = `<?xml version="1.0" encoding="UTF-8"?>
|
||||
<methodResponse>
|
||||
<fault>
|
||||
<value>
|
||||
<struct>
|
||||
<member>
|
||||
<name>
|
||||
faultCode
|
||||
</name>
|
||||
<value>
|
||||
<int>
|
||||
201
|
||||
</int>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>
|
||||
faultString
|
||||
</name>
|
||||
<value>
|
||||
<string>
|
||||
Method signature error: 42
|
||||
</string>
|
||||
</value>
|
||||
</member>
|
||||
</struct>
|
||||
</value>
|
||||
</fault>
|
||||
</methodResponse>`
|
||||
|
||||
const addZoneRecordGoodAuth = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>addZoneRecord</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>goodpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>example.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<struct>
|
||||
<member>
|
||||
<name>type</name>
|
||||
<value>
|
||||
<string>TXT</string>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>ttl</name>
|
||||
<value>
|
||||
<int>123</int>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>priority</name>
|
||||
<value>
|
||||
<int>0</int>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>rdata</name>
|
||||
<value>
|
||||
<string>TXTrecord</string>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>record_id</name>
|
||||
<value>
|
||||
<int>0</int>
|
||||
</value>
|
||||
</member>
|
||||
</struct>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const addZoneRecordBadAuth = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>addZoneRecord</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>badpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>example.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<struct>
|
||||
<member>
|
||||
<name>type</name>
|
||||
<value>
|
||||
<string>TXT</string>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>ttl</name>
|
||||
<value>
|
||||
<int>123</int>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>priority</name>
|
||||
<value>
|
||||
<int>0</int>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>rdata</name>
|
||||
<value>
|
||||
<string>TXTrecord</string>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>record_id</name>
|
||||
<value>
|
||||
<int>0</int>
|
||||
</value>
|
||||
</member>
|
||||
</struct>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const addZoneRecordNonValidDomain = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>addZoneRecord</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>goodpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>badexample.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<struct>
|
||||
<member>
|
||||
<name>type</name>
|
||||
<value>
|
||||
<string>TXT</string>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>ttl</name>
|
||||
<value>
|
||||
<int>123</int>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>priority</name>
|
||||
<value>
|
||||
<int>0</int>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>rdata</name>
|
||||
<value>
|
||||
<string>TXTrecord</string>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>record_id</name>
|
||||
<value>
|
||||
<int>0</int>
|
||||
</value>
|
||||
</member>
|
||||
</struct>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const addZoneRecordEmptyResponse = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>addZoneRecord</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>goodpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>empty.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<struct>
|
||||
<member>
|
||||
<name>type</name>
|
||||
<value>
|
||||
<string>TXT</string>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>ttl</name>
|
||||
<value>
|
||||
<int>123</int>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>priority</name>
|
||||
<value>
|
||||
<int>0</int>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>rdata</name>
|
||||
<value>
|
||||
<string>TXTrecord</string>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>record_id</name>
|
||||
<value>
|
||||
<int>0</int>
|
||||
</value>
|
||||
</member>
|
||||
</struct>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const getZoneRecords = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>getZoneRecords</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>goodpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>example.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const getZoneRecordsResponse = `<?xml version="1.0" encoding="UTF-8"?>
|
||||
<methodResponse>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<array>
|
||||
<data>
|
||||
<value>
|
||||
<struct>
|
||||
<member>
|
||||
<name>type</name>
|
||||
<value>
|
||||
<string>TXT</string>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>ttl</name>
|
||||
<value>
|
||||
<int>300</int>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>priority</name>
|
||||
<value>
|
||||
<int>0</int>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>rdata</name>
|
||||
<value>
|
||||
<string>LHDhK3oGRvkiefQnx7OOczTY5Tic_xZ6HcMOc_gmtoM</string>
|
||||
</value>
|
||||
</member>
|
||||
<member>
|
||||
<name>record_id</name>
|
||||
<value>
|
||||
<int>12345678</int>
|
||||
</value>
|
||||
</member>
|
||||
</struct>
|
||||
</value>
|
||||
</data>
|
||||
</array>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodResponse>`
|
||||
|
||||
const removeRecordGoodAuth = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>removeZoneRecord</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>goodpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>example.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<int>12345678</int>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const removeRecordBadAuth = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>removeZoneRecord</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>badpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>example.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<int>12345678</int>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const removeRecordNonValidDomain = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>removeZoneRecord</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>goodpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>badexample.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<int>12345678</int>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const removeRecordEmptyResponse = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>removeZoneRecord</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>goodpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>empty.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<int>12345678</int>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const removeSubdomainGoodAuth = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>removeSubdomain</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>goodpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>example.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const removeSubdomainBadAuth = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>removeSubdomain</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>badpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>example.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const removeSubdomainNonValidDomain = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>removeSubdomain</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>goodpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>badexample.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
||||
|
||||
const removeSubdomainEmptyResponse = `<?xml version="1.0"?>
|
||||
<methodCall>
|
||||
<methodName>removeSubdomain</methodName>
|
||||
<params>
|
||||
<param>
|
||||
<value>
|
||||
<string>apiuser</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>goodpassword</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>empty.com</string>
|
||||
</value>
|
||||
</param>
|
||||
<param>
|
||||
<value>
|
||||
<string>_acme-challenge</string>
|
||||
</value>
|
||||
</param>
|
||||
</params>
|
||||
</methodCall>`
|
Reference in New Issue
Block a user