emacs-diffs
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]