12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // Copyright (C) 2019 The Syncthing Authors.
- //
- // This Source Code Form is subject to the terms of the Mozilla Public
- // License, v. 2.0. If a copy of the MPL was not distributed with this file,
- // You can obtain one at https://mozilla.org/MPL/2.0/.
- package fs
- import (
- "runtime"
- "testing"
- )
- func TestCommonPrefix(t *testing.T) {
- test := func(first, second, expect string) {
- t.Helper()
- res := CommonPrefix(first, second)
- if res != expect {
- t.Errorf("Expected %s got %s", expect, res)
- }
- }
- if runtime.GOOS == "windows" {
- test(`c:\Audrius\Downloads`, `c:\Audrius\Docs`, `c:\Audrius`)
- test(`c:\Audrius\Downloads`, `C:\Audrius\Docs`, ``) // Case differences :(
- test(`C:\Audrius-a\Downloads`, `C:\Audrius-b\Docs`, `C:\`)
- test(`\\?\C:\Audrius-a\Downloads`, `\\?\C:\Audrius-b\Docs`, `\\?\C:\`)
- test(`\\?\C:\Audrius\Downloads`, `\\?\C:\Audrius\Docs`, `\\?\C:\Audrius`)
- test(`Audrius-a\Downloads`, `Audrius-b\Docs`, ``)
- test(`Audrius\Downloads`, `Audrius\Docs`, `Audrius`)
- test(`c:\Audrius\Downloads`, `Audrius\Docs`, ``)
- test(`c:\`, `c:\`, `c:\`)
- test(`\\?\c:\`, `\\?\c:\`, `\\?\c:\`)
- } else {
- test(`/Audrius/Downloads`, `/Audrius/Docs`, `/Audrius`)
- test(`/Audrius\Downloads`, `/Audrius\Docs`, `/`)
- test(`/Audrius-a/Downloads`, `/Audrius-b/Docs`, `/`)
- test(`Audrius\Downloads`, `Audrius\Docs`, ``) // Windows separators
- test(`Audrius/Downloads`, `Audrius/Docs`, `Audrius`)
- test(`Audrius-a\Downloads`, `Audrius-b\Docs`, ``)
- test(`/Audrius/Downloads`, `Audrius/Docs`, ``)
- test(`/`, `/`, `/`)
- }
- test(`Audrius`, `Audrius`, `Audrius`)
- test(`.`, `.`, `.`)
- }
|