[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master dd42ca4: Add Tramp tests
From: |
Michael Albinus |
Subject: |
[Emacs-diffs] master dd42ca4: Add Tramp tests |
Date: |
Mon, 10 Apr 2017 11:22:33 -0400 (EDT) |
branch: master
commit dd42ca427cf8a890678f574de43685ae70416491
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>
Add Tramp tests
* lisp/net/tramp.el (tramp-syntax): Adapt docstring.
* test/lisp/net/tramp-tests.el
(tramp-test01-file-name-syntax-simplified)
(tramp-test01-file-name-syntax-separate)
(tramp-test02-file-name-dissect-simplified)
(tramp-test02-file-name-dissect-separate): New tests.
---
lisp/net/tramp.el | 5 +-
test/lisp/net/tramp-tests.el | 786 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 790 insertions(+), 1 deletion(-)
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index eb32bd6..12169d4 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -669,7 +669,10 @@ It can have the following values:
`default' -- Default syntax
`simplified' -- Ange-FTP like syntax
- `separate' -- Syntax as defined for XEmacs originally."
+ `separate' -- Syntax as defined for XEmacs originally
+
+Do not change the value by `setq', it must be changed only by
+`custom-set-variables'. See also `tramp-change-syntax'."
:group 'tramp
:version "26.1"
:package-version '(Tramp . "2.3.2")
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index ba00a96..9dcb3ec 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -213,6 +213,115 @@ handled properly. BODY shall not contain a timeout."
(should (tramp-tramp-file-p "/-:h:/path/to/file"))
(should (tramp-tramp-file-p "/m::/path/to/file"))))
+(ert-deftest tramp-test01-file-name-syntax-simplified ()
+ "Check simplified file name syntax."
+ :tags '(:expensive-test)
+ (let ((syntax tramp-syntax))
+ (unwind-protect
+ (progn
+ (tramp-change-syntax 'simplified)
+ ;; Simple cases.
+ (should (tramp-tramp-file-p "/host:"))
+ (should (tramp-tramp-file-p "/user@:"))
+ (should (tramp-tramp-file-p "/address@hidden:"))
+ (should (tramp-tramp-file-p "/address@hidden@host:"))
+
+ ;; Using a port.
+ (should (tramp-tramp-file-p "/host#1234:"))
+ (should (tramp-tramp-file-p "/address@hidden:"))
+
+ ;; Using an IPv4 address.
+ (should (tramp-tramp-file-p "/1.2.3.4:"))
+ (should (tramp-tramp-file-p "/address@hidden:"))
+
+ ;; Using an IPv6 address.
+ (should (tramp-tramp-file-p "/[::1]:"))
+ (should (tramp-tramp-file-p "/address@hidden::1]:"))
+
+ ;; Local file name part.
+ (should (tramp-tramp-file-p "/host::"))
+ (should (tramp-tramp-file-p "/host:/:"))
+ (should (tramp-tramp-file-p "/host:/path/to/file"))
+ (should (tramp-tramp-file-p "/host:/:/path/to/file"))
+ (should (tramp-tramp-file-p "/host:file"))
+ (should (tramp-tramp-file-p "/host:/:file"))
+
+ ;; Multihop.
+ (should (tramp-tramp-file-p "/host1|host2:"))
+ (should (tramp-tramp-file-p "/address@hidden|address@hidden:"))
+ (should (tramp-tramp-file-p
"/address@hidden|address@hidden|address@hidden:"))
+
+ ;; No strings.
+ (should-not (tramp-tramp-file-p nil))
+ (should-not (tramp-tramp-file-p 'symbol))
+ ;; Quote with "/:" suppresses file name handlers.
+ (should-not (tramp-tramp-file-p "/::"))
+ (should-not (tramp-tramp-file-p "/:@:"))
+ (should-not (tramp-tramp-file-p "/:[]:")))
+
+ ;; Exit.
+ (tramp-change-syntax syntax))))
+
+(ert-deftest tramp-test01-file-name-syntax-separate ()
+ "Check separate file name syntax."
+ :tags '(:expensive-test)
+ (let ((syntax tramp-syntax))
+ (unwind-protect
+ (progn
+ (tramp-change-syntax 'separate)
+ ;; Simple cases.
+ (should (tramp-tramp-file-p "/[method/]"))
+ (should (tramp-tramp-file-p "/[method/host]"))
+ (should (tramp-tramp-file-p "/[method/address@hidden"))
+ (should (tramp-tramp-file-p "/[method/address@hidden"))
+ (should (tramp-tramp-file-p "/[method/address@hidden@host]"))
+
+ ;; Using a port.
+ (should (tramp-tramp-file-p "/[method/host#1234]"))
+ (should (tramp-tramp-file-p "/[method/address@hidden"))
+
+ ;; Using an IPv4 address.
+ (should (tramp-tramp-file-p "/[method/1.2.3.4]"))
+ (should (tramp-tramp-file-p "/[method/address@hidden"))
+
+ ;; Using an IPv6 address.
+ (should (tramp-tramp-file-p "/[method/::1]"))
+ (should (tramp-tramp-file-p "/[method/user@::1]"))
+
+ ;; Local file name part.
+ (should (tramp-tramp-file-p "/[method/]"))
+ (should (tramp-tramp-file-p "/[method/]/:"))
+ (should (tramp-tramp-file-p "/[method/]/path/to/file"))
+ (should (tramp-tramp-file-p "/[method/]/:/path/to/file"))
+ (should (tramp-tramp-file-p "/[method/]file"))
+ (should (tramp-tramp-file-p "/[method/]/:file"))
+
+ ;; Multihop.
+ (should (tramp-tramp-file-p "/[method1/|method2/]"))
+ (should (tramp-tramp-file-p "/[method1/host1|method2/host2]"))
+ (should
+ (tramp-tramp-file-p
+ "/[method1/address@hidden|method2/address@hidden"))
+ (should
+ (tramp-tramp-file-p
+
"/[method1/address@hidden|method2/address@hidden|method3/address@hidden"))
+
+ ;; No strings.
+ (should-not (tramp-tramp-file-p nil))
+ (should-not (tramp-tramp-file-p 'symbol))
+ ;; Ange-ftp syntax.
+ (should-not (tramp-tramp-file-p "/host:"))
+ (should-not (tramp-tramp-file-p "/address@hidden:"))
+ (should-not (tramp-tramp-file-p "/1.2.3.4:"))
+ (should-not (tramp-tramp-file-p "/host:/:"))
+ (should-not (tramp-tramp-file-p "/host1|host2:"))
+ (should-not (tramp-tramp-file-p "/address@hidden|address@hidden:"))
+ ;; Quote with "/:" suppresses file name handlers.
+ (should-not (tramp-tramp-file-p "/:[]")))
+
+ ;; Exit.
+ (tramp-change-syntax syntax))))
+
(ert-deftest tramp-test02-file-name-dissect ()
"Check remote file name components."
(let ((tramp-default-method "default-method")
@@ -569,6 +678,683 @@ handled properly. BODY shall not contain a timeout."
(format "%s:address@hidden|%s:address@hidden|"
"method1" "user1" "host1" "method2" "user2" "host2")))))
+(ert-deftest tramp-test02-file-name-dissect-simplified ()
+ "Check simplified file name components."
+ :tags '(:expensive-test)
+ (let ((tramp-default-method "default-method")
+ (tramp-default-user "default-user")
+ (tramp-default-host "default-host")
+ (syntax tramp-syntax))
+ (unwind-protect
+ (progn
+ (tramp-change-syntax 'simplified)
+ ;; Expand `tramp-default-method' and `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/host:")
+ (format "/address@hidden:" "default-user" "host")))
+ (should (string-equal
+ (file-remote-p "/host:" 'method) "default-method"))
+ (should (string-equal (file-remote-p "/host:" 'user) "default-user"))
+ (should (string-equal (file-remote-p "/host:" 'host) "host"))
+ (should (string-equal (file-remote-p "/host:" 'localname) ""))
+ (should (string-equal (file-remote-p "/host:" 'hop) nil))
+
+ ;; Expand `tramp-default-method' and `tramp-default-host'.
+ (should (string-equal
+ (file-remote-p "/user@:")
+ (format "/address@hidden:" "user" "default-host")))
+ (should (string-equal
+ (file-remote-p "/user@:" 'method) "default-method"))
+ (should (string-equal (file-remote-p "/user@:" 'user) "user"))
+ (should (string-equal (file-remote-p "/user@:" 'host) "default-host"))
+ (should (string-equal (file-remote-p "/user@:" 'localname) ""))
+ (should (string-equal (file-remote-p "/user@:" 'hop) nil))
+
+ ;; Expand `tramp-default-method'.
+ (should (string-equal
+ (file-remote-p "/address@hidden:")
+ (format "/address@hidden:" "user" "host")))
+ (should (string-equal
+ (file-remote-p "/address@hidden:" 'method) "default-method"))
+ (should (string-equal (file-remote-p "/address@hidden:" 'user)
"user"))
+ (should (string-equal (file-remote-p "/address@hidden:" 'host)
"host"))
+ (should (string-equal (file-remote-p "/address@hidden:" 'localname)
""))
+ (should (string-equal (file-remote-p "/address@hidden:" 'hop) nil))
+
+ ;; No expansion.
+ (should (string-equal
+ (file-remote-p "/address@hidden@host:")
+ (format "/address@hidden:" "address@hidden" "host")))
+ (should (string-equal
+ (file-remote-p
+ "/address@hidden@host:" 'method) "default-method"))
+ (should (string-equal
+ (file-remote-p "/address@hidden@host:" 'user)
"address@hidden"))
+ (should (string-equal
+ (file-remote-p "/address@hidden@host:" 'host) "host"))
+ (should (string-equal
+ (file-remote-p "/address@hidden@host:" 'localname) ""))
+ (should (string-equal
+ (file-remote-p "/address@hidden@host:" 'hop) nil))
+
+ ;; Expand `tramp-default-method' and `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/host#1234:")
+ (format "/address@hidden:" "default-user" "host#1234")))
+ (should (string-equal
+ (file-remote-p "/host#1234:" 'method) "default-method"))
+ (should (string-equal
+ (file-remote-p "/host#1234:" 'user) "default-user"))
+ (should (string-equal
+ (file-remote-p "/host#1234:" 'host) "host#1234"))
+ (should (string-equal (file-remote-p "/host#1234:" 'localname) ""))
+ (should (string-equal (file-remote-p "/host#1234:" 'hop) nil))
+
+ ;; Expand `tramp-default-method'.
+ (should (string-equal
+ (file-remote-p "/address@hidden:")
+ (format "/address@hidden:" "user" "host#1234")))
+ (should (string-equal
+ (file-remote-p "/address@hidden:" 'method) "default-method"))
+ (should (string-equal
+ (file-remote-p "/address@hidden:" 'user) "user"))
+ (should (string-equal
+ (file-remote-p "/address@hidden:" 'host) "host#1234"))
+ (should (string-equal
+ (file-remote-p "/address@hidden:" 'localname) ""))
+ (should (string-equal (file-remote-p "/address@hidden:" 'hop) nil))
+
+ ;; Expand `tramp-default-method' and `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/1.2.3.4:")
+ (format "/address@hidden:" "default-user" "1.2.3.4")))
+ (should (string-equal
+ (file-remote-p "/1.2.3.4:" 'method) "default-method"))
+ (should (string-equal
+ (file-remote-p "/1.2.3.4:" 'user) "default-user"))
+ (should (string-equal (file-remote-p "/1.2.3.4:" 'host) "1.2.3.4"))
+ (should (string-equal (file-remote-p "/1.2.3.4:" 'localname) ""))
+ (should (string-equal (file-remote-p "/1.2.3.4:" 'hop) nil))
+
+ ;; Expand `tramp-default-method'.
+ (should (string-equal
+ (file-remote-p "/address@hidden:")
+ (format "/address@hidden:" "user" "1.2.3.4")))
+ (should (string-equal
+ (file-remote-p "/address@hidden:" 'method) "default-method"))
+ (should (string-equal (file-remote-p "/address@hidden:" 'user)
"user"))
+ (should (string-equal
+ (file-remote-p "/address@hidden:" 'host) "1.2.3.4"))
+ (should (string-equal (file-remote-p "/address@hidden:" 'localname)
""))
+ (should (string-equal (file-remote-p "/address@hidden:" 'hop) nil))
+
+ ;; Expand `tramp-default-method', `tramp-default-user' and
+ ;; `tramp-default-host'.
+ (should (string-equal
+ (file-remote-p "/[]:")
+ (format
+ "/address@hidden:" "default-user" "default-host")))
+ (should (string-equal
+ (file-remote-p "/[]:" 'method) "default-method"))
+ (should (string-equal (file-remote-p "/[]:" 'user) "default-user"))
+ (should (string-equal (file-remote-p "/[]:" 'host) "default-host"))
+ (should (string-equal (file-remote-p "/[]:" 'localname) ""))
+ (should (string-equal (file-remote-p "/[]:" 'hop) nil))
+
+ ;; Expand `tramp-default-method' and `tramp-default-user'.
+ (let ((tramp-default-host "::1"))
+ (should (string-equal
+ (file-remote-p "/[]:")
+ (format "/address@hidden:" "default-user" "[::1]")))
+ (should (string-equal
+ (file-remote-p "/[]:" 'method) "default-method"))
+ (should (string-equal (file-remote-p "/[]:" 'user) "default-user"))
+ (should (string-equal (file-remote-p "/[]:" 'host) "::1"))
+ (should (string-equal (file-remote-p "/[]:" 'localname) ""))
+ (should (string-equal (file-remote-p "/[]:" 'hop) nil)))
+
+ ;; Expand `tramp-default-method' and `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/[::1]:")
+ (format "/address@hidden:" "default-user" "[::1]")))
+ (should (string-equal
+ (file-remote-p "/[::1]:" 'method) "default-method"))
+ (should (string-equal (file-remote-p "/[::1]:" 'user) "default-user"))
+ (should (string-equal (file-remote-p "/[::1]:" 'host) "::1"))
+ (should (string-equal (file-remote-p "/[::1]:" 'localname) ""))
+ (should (string-equal (file-remote-p "/[::1]:" 'hop) nil))
+
+ ;; Expand `tramp-default-method'.
+ (should (string-equal
+ (file-remote-p "/address@hidden::1]:")
+ (format "/address@hidden:" "user" "[::1]")))
+ (should (string-equal
+ (file-remote-p "/address@hidden::1]:" 'method)
"default-method"))
+ (should (string-equal (file-remote-p "/address@hidden::1]:" 'user)
"user"))
+ (should (string-equal (file-remote-p "/address@hidden::1]:" 'host)
"::1"))
+ (should (string-equal (file-remote-p "/address@hidden::1]:"
'localname) ""))
+ (should (string-equal (file-remote-p "/address@hidden::1]:" 'hop)
nil))
+
+ ;; Local file name part.
+ (should (string-equal (file-remote-p "/host:/:" 'localname) "/:"))
+ (should (string-equal (file-remote-p "/host::" 'localname) ":"))
+ (should (string-equal (file-remote-p "/host: " 'localname) " "))
+ (should (string-equal (file-remote-p "/host:file" 'localname) "file"))
+ (should (string-equal
+ (file-remote-p "/host:/path/to/file" 'localname)
+ "/path/to/file"))
+
+ ;; Multihop.
+ (should
+ (string-equal
+ (file-remote-p "/address@hidden|address@hidden:/path/to/file")
+ (format "/address@hidden|address@hidden:" "user1" "host1" "user2"
"host2")))
+ (should
+ (string-equal
+ (file-remote-p
+ "/address@hidden|address@hidden:/path/to/file" 'method)
+ "default-method"))
+ (should
+ (string-equal
+ (file-remote-p
+ "/address@hidden|address@hidden:/path/to/file" 'user)
+ "user2"))
+ (should
+ (string-equal
+ (file-remote-p
+ "/address@hidden|address@hidden:/path/to/file" 'host)
+ "host2"))
+ (should
+ (string-equal
+ (file-remote-p
+ "/address@hidden|address@hidden:/path/to/file" 'localname)
+ "/path/to/file"))
+ (should
+ (string-equal
+ (file-remote-p
+ "/address@hidden|address@hidden:/path/to/file" 'hop)
+ (format "address@hidden|" "user1" "host1")))
+
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/address@hidden"
+ "|address@hidden"
+ "|address@hidden:/path/to/file"))
+ (format "/address@hidden|address@hidden|address@hidden:"
+ "user1" "host1"
+ "user2" "host2"
+ "user3" "host3")))
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/address@hidden"
+ "|address@hidden"
+ "|address@hidden:/path/to/file")
+ 'method)
+ "default-method"))
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/address@hidden"
+ "|address@hidden"
+ "|address@hidden:/path/to/file")
+ 'user)
+ "user3"))
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/address@hidden"
+ "|address@hidden"
+ "|address@hidden:/path/to/file")
+ 'host)
+ "host3"))
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/address@hidden"
+ "|address@hidden"
+ "|address@hidden:/path/to/file")
+ 'localname)
+ "/path/to/file"))
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/address@hidden"
+ "|address@hidden"
+ "|address@hidden:/path/to/file")
+ 'hop)
+ (format "address@hidden|address@hidden|"
+ "user1" "host1" "user2" "host2"))))
+
+ ;; Exit.
+ (tramp-change-syntax syntax))))
+
+(ert-deftest tramp-test02-file-name-dissect-separate ()
+ "Check separate file name components."
+ :tags '(:expensive-test)
+ (let ((tramp-default-method "default-method")
+ (tramp-default-user "default-user")
+ (tramp-default-host "default-host")
+ (syntax tramp-syntax))
+ (unwind-protect
+ (progn
+ (tramp-change-syntax 'separate)
+ ;; Expand `tramp-default-user' and `tramp-default-host'.
+ (should (string-equal
+ (file-remote-p "/[method/]")
+ (format
+ "/[%s/address@hidden" "method" "default-user"
"default-host")))
+ (should (string-equal (file-remote-p "/[method/]" 'method) "method"))
+ (should (string-equal
+ (file-remote-p "/[method/]" 'user) "default-user"))
+ (should (string-equal
+ (file-remote-p "/[method/]" 'host) "default-host"))
+ (should (string-equal (file-remote-p "/[method/]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[method/]" 'hop) nil))
+
+ ;; Expand `tramp-default-method' and `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/[-/host]")
+ (format
+ "/[%s/address@hidden" "default-method" "default-user"
"host")))
+ (should (string-equal
+ (file-remote-p "/[-/host]" 'method) "default-method"))
+ (should (string-equal
+ (file-remote-p "/[-/host]" 'user) "default-user"))
+ (should (string-equal (file-remote-p "/[-/host]" 'host) "host"))
+ (should (string-equal (file-remote-p "/[-/host]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[-/host]" 'hop) nil))
+
+ ;; Expand `tramp-default-method' and `tramp-default-host'.
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden")
+ (format
+ "/[%s/address@hidden" "default-method" "user"
"default-host")))
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden" 'method)
"default-method"))
+ (should (string-equal (file-remote-p "/[-/address@hidden" 'user)
"user"))
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden" 'host) "default-host"))
+ (should (string-equal (file-remote-p "/[-/address@hidden" 'localname)
""))
+ (should (string-equal (file-remote-p "/[-/address@hidden" 'hop) nil))
+
+ ;; Expand `tramp-default-method'.
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden")
+ (format "/[%s/address@hidden" "default-method" "user"
"host")))
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden" 'method)
"default-method"))
+ (should (string-equal (file-remote-p "/[-/address@hidden" 'user)
"user"))
+ (should (string-equal (file-remote-p "/[-/address@hidden" 'host)
"host"))
+ (should (string-equal (file-remote-p "/[-/address@hidden" 'localname)
""))
+ (should (string-equal (file-remote-p "/[-/address@hidden" 'hop) nil))
+
+ ;; Expand `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/[method/host]")
+ (format "/[%s/address@hidden" "method" "default-user"
"host")))
+ (should (string-equal
+ (file-remote-p "/[method/host]" 'method) "method"))
+ (should (string-equal
+ (file-remote-p "/[method/host]" 'user) "default-user"))
+ (should (string-equal (file-remote-p "/[method/host]" 'host) "host"))
+ (should (string-equal (file-remote-p "/[method/host]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[method/host]" 'hop) nil))
+
+ ;; Expand `tramp-default-host'.
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden")
+ (format "/[%s/address@hidden" "method" "user"
"default-host")))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'method) "method"))
+ (should (string-equal (file-remote-p "/[method/address@hidden" 'user)
"user"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'host)
"default-host"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'localname) ""))
+ (should (string-equal (file-remote-p "/[method/address@hidden" 'hop)
nil))
+
+ ;; No expansion.
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden")
+ (format "/[%s/address@hidden" "method" "user" "host")))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'method) "method"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'user) "user"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'host) "host"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'localname) ""))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'hop) nil))
+
+ ;; No expansion.
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden@host]")
+ (format "/[%s/address@hidden" "method" "address@hidden"
"host")))
+ (should (string-equal
+ (file-remote-p
+ "/[method/address@hidden@host]" 'method) "method"))
+ (should (string-equal
+ (file-remote-p
+ "/[method/address@hidden@host]" 'user) "address@hidden"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden@host]" 'host)
"host"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden@host]" 'localname)
""))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden@host]" 'hop) nil))
+
+ ;; Expand `tramp-default-method' and `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/[-/host#1234]")
+ (format
+ "/[%s/address@hidden" "default-method" "default-user"
"host#1234")))
+ (should (string-equal
+ (file-remote-p "/[-/host#1234]" 'method) "default-method"))
+ (should (string-equal
+ (file-remote-p "/[-/host#1234]" 'user) "default-user"))
+ (should (string-equal
+ (file-remote-p "/[-/host#1234]" 'host) "host#1234"))
+ (should (string-equal (file-remote-p "/[-/host#1234]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[-/host#1234]" 'hop) nil))
+
+ ;; Expand `tramp-default-method'.
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden")
+ (format "/[%s/address@hidden" "default-method" "user"
"host#1234")))
+ (should (string-equal
+ (file-remote-p
+ "/[-/address@hidden" 'method) "default-method"))
+ (should (string-equal
+ (file-remote-p
+ "/[-/address@hidden" 'user) "user"))
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden" 'host) "host#1234"))
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden" 'localname) ""))
+ (should (string-equal (file-remote-p "/[-/address@hidden" 'hop) nil))
+
+ ;; Expand `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/[method/host#1234]")
+ (format "/[%s/address@hidden" "method" "default-user"
"host#1234")))
+ (should (string-equal
+ (file-remote-p "/[method/host#1234]" 'method) "method"))
+ (should (string-equal
+ (file-remote-p "/[method/host#1234]" 'user) "default-user"))
+ (should (string-equal
+ (file-remote-p "/[method/host#1234]" 'host) "host#1234"))
+ (should (string-equal
+ (file-remote-p "/[method/host#1234]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[method/host#1234]" 'hop) nil))
+
+ ;; No expansion.
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden")
+ (format "/[%s/address@hidden" "method" "user" "host#1234")))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'method) "method"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'user) "user"))
+ (should (string-equal
+ (file-remote-p
+ "/[method/address@hidden" 'host) "host#1234"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'localname) ""))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'hop) nil))
+
+ ;; Expand `tramp-default-method' and `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/[-/1.2.3.4]")
+ (format
+ "/[%s/address@hidden" "default-method" "default-user"
"1.2.3.4")))
+ (should (string-equal
+ (file-remote-p "/[-/1.2.3.4]" 'method) "default-method"))
+ (should (string-equal
+ (file-remote-p "/[-/1.2.3.4]" 'user) "default-user"))
+ (should (string-equal
+ (file-remote-p "/[-/1.2.3.4]" 'host) "1.2.3.4"))
+ (should (string-equal (file-remote-p "/[-/1.2.3.4]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[-/1.2.3.4]" 'hop) nil))
+
+ ;; Expand `tramp-default-method'.
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden")
+ (format "/[%s/address@hidden" "default-method" "user"
"1.2.3.4")))
+ (should (string-equal
+ (file-remote-p
+ "/[-/address@hidden" 'method) "default-method"))
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden" 'user) "user"))
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden" 'host) "1.2.3.4"))
+ (should (string-equal
+ (file-remote-p "/[-/address@hidden" 'localname) ""))
+ (should (string-equal (file-remote-p "/[-/address@hidden" 'hop) nil))
+
+ ;; Expand `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/[method/1.2.3.4]")
+ (format "/[%s/address@hidden" "method" "default-user"
"1.2.3.4")))
+ (should (string-equal
+ (file-remote-p "/[method/1.2.3.4]" 'method) "method"))
+ (should (string-equal
+ (file-remote-p "/[method/1.2.3.4]" 'user) "default-user"))
+ (should (string-equal
+ (file-remote-p "/[method/1.2.3.4]" 'host) "1.2.3.4"))
+ (should (string-equal
+ (file-remote-p "/[method/1.2.3.4]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[method/1.2.3.4]" 'hop) nil))
+
+ ;; No expansion.
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden")
+ (format "/[%s/address@hidden" "method" "user" "1.2.3.4")))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'method) "method"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'user) "user"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'host) "1.2.3.4"))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'localname) ""))
+ (should (string-equal
+ (file-remote-p "/[method/address@hidden" 'hop) nil))
+
+ ;; Expand `tramp-default-method', `tramp-default-user' and
+ ;; `tramp-default-host'.
+ (should (string-equal
+ (file-remote-p "/[-/]")
+ (format
+ "/[%s/address@hidden"
+ "default-method" "default-user" "default-host")))
+ (should (string-equal
+ (file-remote-p "/[-/]" 'method) "default-method"))
+ (should (string-equal (file-remote-p "/[-/]" 'user) "default-user"))
+ (should (string-equal (file-remote-p "/[-/]" 'host) "default-host"))
+ (should (string-equal (file-remote-p "/[-/]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[-/]" 'hop) nil))
+
+ ;; Expand `tramp-default-method' and `tramp-default-user'.
+ (let ((tramp-default-host "::1"))
+ (should (string-equal
+ (file-remote-p "/[-/]")
+ (format
+ "/[%s/address@hidden"
+ "default-method" "default-user" "::1")))
+ (should (string-equal
+ (file-remote-p "/[-/]" 'method) "default-method"))
+ (should (string-equal (file-remote-p "/[-/]" 'user) "default-user"))
+ (should (string-equal (file-remote-p "/[-/]" 'host) "::1"))
+ (should (string-equal (file-remote-p "/[-/]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[-/]" 'hop) nil)))
+
+ ;; Expand `tramp-default-method' and `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/[-/::1]")
+ (format
+ "/[%s/address@hidden" "default-method" "default-user"
"::1")))
+ (should (string-equal
+ (file-remote-p "/[-/::1]" 'method) "default-method"))
+ (should (string-equal
+ (file-remote-p "/[-/::1]" 'user) "default-user"))
+ (should (string-equal (file-remote-p "/[-/::1]" 'host) "::1"))
+ (should (string-equal (file-remote-p "/[-/::1]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[-/::1]" 'hop) nil))
+
+ ;; Expand `tramp-default-method'.
+ (should (string-equal
+ (file-remote-p "/[-/user@::1]")
+ (format "/[%s/address@hidden" "default-method" "user"
"::1")))
+ (should (string-equal
+ (file-remote-p "/[-/user@::1]" 'method) "default-method"))
+ (should (string-equal (file-remote-p "/[-/user@::1]" 'user) "user"))
+ (should (string-equal (file-remote-p "/[-/user@::1]" 'host) "::1"))
+ (should (string-equal (file-remote-p "/[-/user@::1]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[-/user@::1]" 'hop) nil))
+
+ ;; Expand `tramp-default-user'.
+ (should (string-equal
+ (file-remote-p "/[method/::1]")
+ (format "/[%s/address@hidden" "method" "default-user"
"::1")))
+ (should (string-equal
+ (file-remote-p "/[method/::1]" 'method) "method"))
+ (should (string-equal
+ (file-remote-p "/[method/::1]" 'user) "default-user"))
+ (should (string-equal (file-remote-p "/[method/::1]" 'host) "::1"))
+ (should (string-equal (file-remote-p "/[method/::1]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[method/::1]" 'hop) nil))
+
+ ;; No expansion.
+ (should (string-equal
+ (file-remote-p "/[method/user@::1]")
+ (format "/[%s/address@hidden" "method" "user" "::1")))
+ (should (string-equal
+ (file-remote-p "/[method/user@::1]" 'method) "method"))
+ (should (string-equal
+ (file-remote-p "/[method/user@::1]" 'user) "user"))
+ (should (string-equal
+ (file-remote-p "/[method/user@::1]" 'host) "::1"))
+ (should (string-equal
+ (file-remote-p "/[method/user@::1]" 'localname) ""))
+ (should (string-equal (file-remote-p "/[method/user@::1]" 'hop) nil))
+
+ ;; Local file name part.
+ (should (string-equal (file-remote-p "/[-/host]/:" 'localname) "/:"))
+ (should (string-equal (file-remote-p "/[method/]:" 'localname) ":"))
+ (should (string-equal (file-remote-p "/[method/] " 'localname) " "))
+ (should (string-equal
+ (file-remote-p "/[method/]file" 'localname) "file"))
+ (should (string-equal
+ (file-remote-p "/[method/]/path/to/file" 'localname)
+ "/path/to/file"))
+
+ ;; Multihop.
+ (should
+ (string-equal
+ (file-remote-p
+ "/[method1/address@hidden|method2/address@hidden/path/to/file")
+ (format "/[%s/address@hidden|%s/address@hidden"
+ "method1" "user1" "host1" "method2" "user2" "host2")))
+ (should
+ (string-equal
+ (file-remote-p
+ "/[method1/address@hidden|method2/address@hidden/path/to/file"
'method)
+ "method2"))
+ (should
+ (string-equal
+ (file-remote-p
+ "/[method1/address@hidden|method2/address@hidden/path/to/file"
'user)
+ "user2"))
+ (should
+ (string-equal
+ (file-remote-p
+ "/[method1/address@hidden|method2/address@hidden/path/to/file"
'host)
+ "host2"))
+ (should
+ (string-equal
+ (file-remote-p
+ "/[method1/address@hidden|method2/address@hidden/path/to/file"
+ 'localname)
+ "/path/to/file"))
+ (should
+ (string-equal
+ (file-remote-p
+ "/[method1/address@hidden|method2/address@hidden/path/to/file"
'hop)
+ (format "%s/address@hidden|"
+ "method1" "user1" "host1")))
+
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/[method1/address@hidden"
+ "|method2/address@hidden"
+ "|method3/address@hidden/path/to/file"))
+ (format "/[%s/address@hidden|%s/address@hidden|%s/address@hidden"
+ "method1" "user1" "host1"
+ "method2" "user2" "host2"
+ "method3" "user3" "host3")))
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/[method1/address@hidden"
+ "|method2/address@hidden"
+ "|method3/address@hidden/path/to/file")
+ 'method)
+ "method3"))
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/[method1/address@hidden"
+ "|method2/address@hidden"
+ "|method3/address@hidden/path/to/file")
+ 'user)
+ "user3"))
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/[method1/address@hidden"
+ "|method2/address@hidden"
+ "|method3/address@hidden/path/to/file")
+ 'host)
+ "host3"))
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/[method1/address@hidden"
+ "|method2/address@hidden"
+ "|method3/address@hidden/path/to/file")
+ 'localname)
+ "/path/to/file"))
+ (should
+ (string-equal
+ (file-remote-p
+ (concat
+ "/[method1/address@hidden"
+ "|method2/address@hidden"
+ "|method3/address@hidden/path/to/file")
+ 'hop)
+ (format "%s/address@hidden|%s/address@hidden|"
+ "method1" "user1" "host1" "method2" "user2" "host2"))))
+
+ ;; Exit.
+ (tramp-change-syntax syntax))))
+
(ert-deftest tramp-test03-file-name-defaults ()
"Check default values for some methods."
;; Default values in tramp-adb.el.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master dd42ca4: Add Tramp tests,
Michael Albinus <=