40 lines
888 B
Go
40 lines
888 B
Go
|
// Copyright 2014 Google Inc. All rights reserved.
|
||
|
// Use of this source code is governed by the Apache 2.0
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package appengine
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"golang.org/x/net/context"
|
||
|
)
|
||
|
|
||
|
func TestNamespaceValidity(t *testing.T) {
|
||
|
testCases := []struct {
|
||
|
namespace string
|
||
|
ok bool
|
||
|
}{
|
||
|
// data from Python's namespace_manager_test.py
|
||
|
{"", true},
|
||
|
{"__a.namespace.123__", true},
|
||
|
{"-_A....NAMESPACE-_", true},
|
||
|
{"-", true},
|
||
|
{".", true},
|
||
|
{".-", true},
|
||
|
|
||
|
{"?", false},
|
||
|
{"+", false},
|
||
|
{"!", false},
|
||
|
{" ", false},
|
||
|
}
|
||
|
for _, tc := range testCases {
|
||
|
_, err := Namespace(context.Background(), tc.namespace)
|
||
|
if err == nil && !tc.ok {
|
||
|
t.Errorf("Namespace %q should be rejected, but wasn't", tc.namespace)
|
||
|
} else if err != nil && tc.ok {
|
||
|
t.Errorf("Namespace %q should be accepted, but wasn't", tc.namespace)
|
||
|
}
|
||
|
}
|
||
|
}
|