not [a-zA-Z0-9+-.]) before there is a ":".
This is particularly helpful in the erroneous-but-relatively-common
case of relative URLs containing an unescaped colon in the query
string--see the added test for an example.
R=rsc
APPROVED=rsc
DELTA=15 (15 added, 0 deleted, 0 changed)
OCL=30354
CL=30356
return "", "", BadURL{"missing protocol scheme"}
}
return rawurl[0:i], rawurl[i+1:len(rawurl)], nil
+ default:
+ // we have encountered an invalid character,
+ // so there is no valid scheme
+ return "", rawurl, nil
}
}
return "", rawurl, nil
},
""
},
+ // unescaped :// in query should not create a scheme
+ URLTest{
+ "/foo?query=http://bad",
+ &URL{
+ "/foo?query=http://bad",
+ "", "/foo?query=http://bad",
+ "", "", "",
+ "/foo", "query=http://bad", ""
+ },
+ ""
+ },
}
var urlnofragtests = []URLTest {