// Copyright 2013 The Go Authors. All rights reserved.
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd.

package gosrc

import (
	"testing"
)

var goodImportPaths = []string{
	"github.com/user/repo",
	"github.com/user/repo/src/pkg/compress/somethingelse",
	"github.com/user/repo/src/compress/gzip",
	"github.com/user/repo/src/pkg",
	"camlistore.org/r/p/camlistore",
	"example.com/foo.git",
	"launchpad.net/~user/foo/trunk",
	"launchpad.net/~user/+junk/version",
	"github.com/user/repo/_ok/x",
	"exampleproject.com",
}

var badImportPaths = []string{
	"foobar",
	"foo.",
	".bar",
	"favicon.ico",
	"github.com/user/repo/.ignore/x",
}

func TestIsValidRemotePath(t *testing.T) {
	for _, importPath := range goodImportPaths {
		if !IsValidRemotePath(importPath) {
			t.Errorf("isBadImportPath(%q) -> true, want false", importPath)
		}

		for _, s := range services {
			if _, err := s.match(importPath); err != nil {
				t.Errorf("match(%#v) → error %v", importPath, err)
				break
			}
		}
	}

	for _, importPath := range badImportPaths {
		if IsValidRemotePath(importPath) {
			t.Errorf("isBadImportPath(%q) -> false, want true", importPath)
		}
	}
}