Make tests pass in Windows

Tests were written for *nix and several did not work on Windows.
So much so the plugin test used bash. This update works to deal with
the differences so CI can be implemented for Windows.
diff --git a/action/plugin_test.go b/action/plugin_test.go
index 95a7b15..72826a1 100644
--- a/action/plugin_test.go
+++ b/action/plugin_test.go
@@ -2,6 +2,7 @@
 
 import (
 	"os"
+	"runtime"
 	"testing"
 
 	"github.com/Masterminds/glide/msg"
@@ -11,7 +12,15 @@
 	wd, _ := os.Getwd()
 	os.Chdir("../testdata/plugin")
 	msg.Default.PanicOnDie = true
-	cmd := "hello"
+	var cmd string
+
+	// Windows scripts for testing (batch) are different from shells scripts.
+	// Making sure the plugin works in both bases.
+	if runtime.GOOS == "windows" {
+		cmd = "hello-win"
+	} else {
+		cmd = "hello"
+	}
 	args := []string{"a", "b"}
 	// FIXME: Trapping the panic is the nice thing to do.
 	Plugin(cmd, args)
diff --git a/dependency/resolver_test.go b/dependency/resolver_test.go
index f4b44d9..3d850b5 100644
--- a/dependency/resolver_test.go
+++ b/dependency/resolver_test.go
@@ -21,10 +21,10 @@
 	}
 
 	expect := []string{
-		"github.com/Masterminds/semver",
-		"github.com/Masterminds/vcs",
-		"gopkg.in/yaml.v2",
-		"github.com/codegangsta/cli",
+		filepath.FromSlash("github.com/Masterminds/semver"),
+		filepath.FromSlash("github.com/Masterminds/vcs"),
+		filepath.FromSlash("gopkg.in/yaml.v2"),
+		filepath.FromSlash("github.com/codegangsta/cli"),
 	}
 
 	for _, p := range expect {
@@ -77,7 +77,7 @@
 		t.Errorf("Expected 1 dep, got %d: %s", len(l), l[0])
 	}
 
-	if !strings.HasSuffix("github.com/codegangsta/cli", l[0]) {
+	if !strings.HasSuffix(filepath.FromSlash("github.com/codegangsta/cli"), l[0]) {
 		t.Errorf("Unexpected package name: %s", l[0])
 	}
 }
diff --git a/path/path_test.go b/path/path_test.go
index 77a0276..ca0492b 100644
--- a/path/path_test.go
+++ b/path/path_test.go
@@ -3,6 +3,7 @@
 import (
 	"os"
 	"path/filepath"
+	"runtime"
 	"testing"
 )
 
@@ -35,7 +36,7 @@
 	}
 	wd, _ := os.Getwd()
 
-	os.Chdir(filepath.Join(td, "a/b/c"))
+	os.Chdir(filepath.Join(td, "a", "b", "c"))
 	res, err := Vendor()
 	if err != nil {
 		t.Errorf("Failed to resolve vendor directory: %s", err)
@@ -45,12 +46,23 @@
 		t.Errorf("Failed to find vendor: expected %s got %s", expect, res)
 	}
 
-	os.Chdir(filepath.Join(td, "x/y/z"))
+	os.Chdir(filepath.Join(td, "x", "y", "z"))
 	res, err = Vendor()
 	if err != nil {
 		t.Errorf("Failed to resolve vendor directory: %s", err)
 	}
-	expect = filepath.Join(td, "x", "symlinked_vendor")
+
+	// Windows symlinks are different than *nix and they can be inconsistent.
+	// The current testing only works for *nix testing and windows doesn't follow
+	// the symlinks. If this is a vendor.lnk file in windows this won't work for
+	// the go toolchain. If this is a windows link you need access to create one
+	// which isn't consistent.
+	// If there is a better way would love to know.
+	if runtime.GOOS == "windows" {
+		expect = filepath.Join(td, "x", "vendor")
+	} else {
+		expect = filepath.Join(td, "x", "symlinked_vendor")
+	}
 	if res != expect {
 		t.Errorf("Failed to find vendor: expected %s got %s", expect, res)
 	}
diff --git a/testdata/path/x/symlinked_vendor/placeholder.empty b/testdata/path/x/symlinked_vendor/placeholder.empty
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/testdata/path/x/symlinked_vendor/placeholder.empty
diff --git a/testdata/plugin/glide-hello-win.bat b/testdata/plugin/glide-hello-win.bat
new file mode 100644
index 0000000..1a1cc1e
--- /dev/null
+++ b/testdata/plugin/glide-hello-win.bat
@@ -0,0 +1,2 @@
+@echo off
+echo "Hello from the other glide"