schema: better test for issue 305

Change-Id: I791d2cd614f8cdc5921a05a0c91589f8965ed06f
This commit is contained in:
Brad Fitzpatrick 2013-12-30 20:17:30 -08:00
parent 339b8c8af4
commit c6b78818b8
2 changed files with 15 additions and 16 deletions

View File

@ -262,8 +262,7 @@ func parseSuperset(r io.Reader) (*superset, error) {
// BlobReader returns a new Blob from the provided Reader r,
// which should be the body of the provided blobref.
// Note: the hash checksum is not verified. Call (*Blob).Verify()
// to validate that the digest matches.
// Note: the hash checksum is not verified.
func BlobFromReader(ref blob.Ref, r io.Reader) (*Blob, error) {
if !ref.Valid() {
return nil, errors.New("schema.BlobFromReader: invalid blobref")

View File

@ -376,38 +376,38 @@ func TestShareExpiration(t *testing.T) {
// camlistore.org/issue/305
func TestIssue305(t *testing.T) {
var in = `{
"camliType": "file",
"camliVersion": 1,
var in = `{"camliVersion": 1,
"camliType": "file",
"fileName": "2012-03-10 15.03.18.m4v",
"parts": [
{
"bytesRef": "sha1-c76d8b17b887c207875e61a77b7eccc60289e61c",
"size": 20032564
}
]
]
}`
var ss superset
if err := json.NewDecoder(strings.NewReader(in)).Decode(&ss); err != nil {
t.Fatal(err)
}
t.Logf("Got %#v", ss)
blob, err := BlobFromReader(blob.ParseOrZero("sha1-f0aa5d21bd2de0724bc7c3c66725e516fd92caff"),
strings.NewReader(in))
inref := blob.SHA1FromString(in)
blob, err := BlobFromReader(inref, strings.NewReader(in))
if err != nil {
t.Fatal(err)
}
if blob.BlobRef() != inref {
t.Error("original ref = %s; want %s", blob.BlobRef(), inref)
}
bb := blob.Builder()
jback, err := bb.JSON()
if err != nil {
t.Fatal(err)
}
if !strings.Contains(jback, `"json": 20032564`) {
t.Logf("JSON back from bb.JSON doesn't contain 20032564 integer literal. Got:\n%s", jback)
if jback != in {
t.Errorf("JSON doesn't match:\n got: %q\nwant: %q\n", jback, in)
}
out := bb.Blob()
if got := out.BlobRef(); got != inref {
t.Errorf("cloned ref = %v; want %v", got, inref)
}
blob2 := bb.Blob()
t.Logf("Got %#v", blob2)
}