@@ -774,6 +774,103 @@ func TestScanCheckDomainResponsePriceExtension(t *testing.T) {
774774 st .Expect (t , dcr .Charges [0 ].CategoryName , "" )
775775}
776776
777+ func TestScanCheckDomainResponseFrnicExtension (t * testing.T ) {
778+ x := `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
779+ <epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:frnic="http://www.afnic.fr/xml/epp/frnic-2.0">
780+ <response>
781+ <result code="1000">
782+ <msg>Command completed successfully</msg>
783+ </result>
784+ <resData>
785+ <domain:chkData>
786+ <domain:cd>
787+ <domain:name avail="1">frety.fr</domain:name>
788+ </domain:cd>
789+ </domain:chkData>
790+ </resData>
791+ <extension>
792+ <frnic:ext>
793+ <frnic:resData>
794+ <frnic:chkData>
795+ <frnic:domain>
796+ <frnic:cd>
797+ <frnic:name forbidden="0" reserved="1">frety.fr</frnic:name>
798+ <frnic:rsvReason>City name</frnic:rsvReason>
799+ </frnic:cd>
800+ </frnic:domain>
801+ </frnic:chkData>
802+ </frnic:resData>
803+ </frnic:ext>
804+ </extension>
805+ <trID>
806+ <svTRID>EPP-8da5fca0-1cf7-4178-9813-82b3d892ebad</svTRID>
807+ </trID>
808+ </response>
809+ </epp>`
810+
811+ var res Response
812+ dcr := & res .DomainCheckResponse
813+
814+ d := decoder (x )
815+ err := IgnoreEOF (scanResponse .Scan (d , & res ))
816+ st .Expect (t , err , nil )
817+ st .Expect (t , len (dcr .Checks ), 1 )
818+ st .Expect (t , dcr .Checks [0 ].Domain , "frety.fr" )
819+ st .Expect (t , dcr .Checks [0 ].Available , true )
820+ st .Expect (t , len (dcr .Charges ), 1 )
821+ st .Expect (t , dcr .Charges [0 ].Domain , "frety.fr" )
822+ st .Expect (t , dcr .Charges [0 ].Category , "reserved" )
823+ st .Expect (t , dcr .Charges [0 ].CategoryName , "" )
824+ }
825+
826+ func TestScanCheckDomainResponseFrnicExtensionForbidden (t * testing.T ) {
827+ x := `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
828+ <epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:frnic="http://www.afnic.fr/xml/epp/frnic-2.0">
829+ <response>
830+ <result code="1000">
831+ <msg>Command completed successfully</msg>
832+ </result>
833+ <resData>
834+ <domain:chkData>
835+ <domain:cd>
836+ <domain:name avail="0">forbidden-test.fr</domain:name>
837+ </domain:cd>
838+ </domain:chkData>
839+ </resData>
840+ <extension>
841+ <frnic:ext>
842+ <frnic:resData>
843+ <frnic:chkData>
844+ <frnic:domain>
845+ <frnic:cd>
846+ <frnic:name forbidden="1" reserved="0">forbidden-test.fr</frnic:name>
847+ </frnic:cd>
848+ </frnic:domain>
849+ </frnic:chkData>
850+ </frnic:resData>
851+ </frnic:ext>
852+ </extension>
853+ <trID>
854+ <svTRID>EPP-test-forbidden</svTRID>
855+ </trID>
856+ </response>
857+ </epp>`
858+
859+ var res Response
860+ dcr := & res .DomainCheckResponse
861+
862+ d := decoder (x )
863+ err := IgnoreEOF (scanResponse .Scan (d , & res ))
864+ st .Expect (t , err , nil )
865+ st .Expect (t , len (dcr .Checks ), 1 )
866+ st .Expect (t , dcr .Checks [0 ].Domain , "forbidden-test.fr" )
867+ st .Expect (t , dcr .Checks [0 ].Available , false )
868+ st .Expect (t , len (dcr .Charges ), 1 )
869+ st .Expect (t , dcr .Charges [0 ].Domain , "forbidden-test.fr" )
870+ st .Expect (t , dcr .Charges [0 ].Category , "forbidden" )
871+ st .Expect (t , dcr .Charges [0 ].CategoryName , "" )
872+ }
873+
777874func BenchmarkEncodeDomainCheck (b * testing.B ) {
778875 domains := []string {"hello.com" }
779876 for i := 0 ; i < b .N ; i ++ {
0 commit comments