]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/company/company-tests.el
Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs/elpa
[gnu-emacs-elpa] / packages / company / company-tests.el
index afd41565381dca1b2eedfbcaf09fecd00d739df3..0663c71f9fef75159454d951d1565ae1cda9e5cc 100644 (file)
         (let (this-command)
           (company-call 'complete))
         (company-call 'open-line 1)
-        (should (eq 2 (overlay-start company-pseudo-tooltip-overlay)))))))
+        (should (eq 1 (overlay-start company-pseudo-tooltip-overlay)))))))
 
 (ert-deftest company-pseudo-tooltip-show ()
   :tags '(interactive)
         (should (eq (overlay-get ov 'company-height) company-tooltip-limit))
         (should (eq (overlay-get ov 'company-column) col))
         (should (string= (overlay-get ov 'company-display)
-                         "  123 \nc 45  c\nddd\n")))))))
+                         "\n  123 \nc 45  c\nddd\n")))))))
 
 (ert-deftest company-pseudo-tooltip-edit-updates-width ()
   :tags '(interactive)
       (let ((company-candidates-length 1)
             (company-candidates '("123")))
         (company-preview-show-at-point (point))
-        (let ((ov company-preview-overlay))
-          (should (string= (overlay-get ov 'display) "123\n")))))))
+        (let* ((ov company-preview-overlay)
+               (str (overlay-get ov 'after-string)))
+          (should (string= str "123"))
+          (should (eq (get-text-property 0 'cursor str) t)))))))
 
 (ert-deftest company-pseudo-tooltip-show-with-annotations ()
   :tags '(interactive)
           ;; With margins.
           (should (eq (overlay-get ov 'company-width) 8))
           (should (string= (overlay-get ov 'company-display)
-                           " 123(4) \n 45     \n")))))))
+                           "\n 123(4) \n 45     \n")))))))
 
 (ert-deftest company-pseudo-tooltip-show-with-annotations-right-aligned ()
   :tags '(interactive)
           ;; With margins.
           (should (eq (overlay-get ov 'company-width) 13))
           (should (string= (overlay-get ov 'company-display)
-                           " 123     (4) \n 45          \n 67 (891011) \n")))))))
+                           "\n 123     (4) \n 45          \n 67 (891011) \n")))))))
 
 (ert-deftest company-create-lines-shows-numbers ()
   (let ((company-show-numbers t)
       (should (eq 'company-tooltip-selection
                   (get-text-property (1- ww) 'face
                                      (car res))))
+      )))
 
-)))
+(ert-deftest company-create-lines-clears-out-non-printables ()
+  :tags '(interactive)
+  (let (company-show-numbers
+        (company-candidates (list
+                             (decode-coding-string "avalis\351e" 'utf-8)
+                             "avatar"))
+        (company-candidates-length 2)
+        (company-backend 'ignore))
+    (should (equal '(" avalis‗e    "
+                     " avatar      ")
+                   (company--create-lines 0 999)))))
+
+(ert-deftest company-create-lines-handles-multiple-width ()
+  :tags '(interactive)
+  (let (company-show-numbers
+        (company-candidates '("蛙蛙蛙蛙" "蛙abc"))
+        (company-candidates-length 2)
+        (company-backend 'ignore))
+    (should (equal '(" 蛙蛙蛙蛙 "
+                     " 蛙abc    ")
+                   (company--create-lines 0 999)))))
 
 (ert-deftest company-column-with-composition ()
   :tags '(interactive)
       (put-text-property (point-min) (point-max) 'line-prefix "  ")
       (should (= (company--column) 2)))))
 
+(ert-deftest company-column-with-tabs ()
+  :tags '(interactive)
+  (with-temp-buffer
+    (save-window-excursion
+      (set-window-buffer nil (current-buffer))
+      (insert "|\t|\t|\t(")
+      (let ((tab-width 8))
+        (should (= (company--column) 25))))))
+
+(ert-deftest company-row-with-header-line-format ()
+  :tags '(interactive)
+  (with-temp-buffer
+    (save-window-excursion
+      (set-window-buffer nil (current-buffer))
+      (should (= (company--row) 0))
+      (setq header-line-format "aaaaaaa")
+      (should (= (company--row) 0)))))
+
 (ert-deftest company-plainify ()
   (let ((tab-width 8))
     (should (equal-including-properties
@@ -879,6 +920,19 @@ foo2"))
       (should (equal "foo(arg0, arg1)" (buffer-string)))
       (should (looking-at "arg0")))))
 
+(ert-deftest company-template-c-like-templatify-generics ()
+  (with-temp-buffer
+    (let ((text "foo<TKey, TValue>(int i, Dict<TKey, TValue>, long l)"))
+      (insert text)
+      (company-template-c-like-templatify text)
+      (should (equal "foo<arg0, arg1>(arg2, arg3, arg4)" (buffer-string)))
+      (should (looking-at "arg0"))
+      (should (equal "TKey" (overlay-get (company-template-field-at) 'display)))
+      (search-forward "arg3")
+      (forward-char -1)
+      (should (equal "Dict<TKey, TValue>"
+                     (overlay-get (company-template-field-at) 'display))))))
+
 ;;; Clang
 
 (ert-deftest company-clang-objc-templatify ()