X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/24149b0db155f9669e830474567527450d3f842f..7a2deffbe4a7865b42e31ad2eabd05221468f07c:/packages/company/test/template-tests.el diff --git a/packages/company/test/template-tests.el b/packages/company/test/template-tests.el index 09548c423..da746bd72 100644 --- a/packages/company/test/template-tests.el +++ b/packages/company/test/template-tests.el @@ -22,6 +22,13 @@ (require 'company-tests) (require 'company-template) +(defun company-template-field-assert-text (str &optional pos) + (let ((field (company-template-field-at pos))) + (should (equal (buffer-substring-no-properties + (overlay-start field) + (overlay-end field)) + str)))) + (ert-deftest company-template-removed-after-the-last-jump () (with-temp-buffer (insert "{ }") @@ -29,8 +36,8 @@ (let ((tpl (company-template-declare-template (point) (1- (point-max))))) (save-excursion (dotimes (_ 2) - (insert " ") - (company-template-add-field tpl (point) "foo"))) + (insert " foo") + (company-template-add-field tpl (- (point) 3) (point)))) (company-call 'template-forward-field) (should (= 3 (point))) (company-call 'template-forward-field) @@ -46,8 +53,8 @@ (goto-char 2) (let ((tpl (company-template-declare-template (point) (1- (point-max))))) (save-excursion - (insert " ") - (company-template-add-field tpl (point) "bar")) + (insert " bar") + (company-template-add-field tpl (- (point) 3) (point))) (company-call 'template-move-to-first tpl) (should (= 3 (point))) (dolist (c (string-to-list "tee")) @@ -64,28 +71,49 @@ (let ((text "foo(int a, short b)")) (insert text) (company-template-c-like-templatify text) - (should (equal "foo(arg0, arg1)" (buffer-string))) - (should (looking-at "arg0")) - (should (equal "int a" - (overlay-get (company-template-field-at) 'display)))))) + (should (equal "foo(int a, short b)" (buffer-string))) + (company-template-field-assert-text "int a")))) (ert-deftest company-template-c-like-templatify-trims-after-closing-paren () (with-temp-buffer (let ((text "foo(int a, short b)!@ #1334 a")) (insert text) (company-template-c-like-templatify text) - (should (equal "foo(arg0, arg1)" (buffer-string))) - (should (looking-at "arg0"))))) + (should (equal "foo(int a, short b)" (buffer-string))) + (company-template-field-assert-text "int a")))) (ert-deftest company-template-c-like-templatify-generics () (with-temp-buffer (let ((text "foo(int i, Dict, long l)")) (insert text) (company-template-c-like-templatify text) - (should (equal "foo(arg2, arg3, arg4)" (buffer-string))) - (should (looking-at "arg0")) - (should (equal "TKey" (overlay-get (company-template-field-at) 'display))) - (search-forward "arg3") + (should (equal (buffer-string) text)) + (company-template-field-assert-text "TKey") + (search-forward "Dict") (forward-char -1) - (should (equal "Dict" - (overlay-get (company-template-field-at) 'display)))))) + (company-template-field-assert-text "Dict")))) + +(ert-deftest company-template-c-like-func-ptr () + (with-temp-buffer + (let ((text "foo(*)(int)")) + (insert text) + (company-template-c-like-templatify text) + (should (equal (buffer-string) "foo(int)")) + (company-template-field-assert-text "int")))) + +(ert-deftest company-clang-objc-templatify-empty-args () + (with-temp-buffer + (let ((text "createBookWithTitle:andAuthor:")) + (insert text) + (company-template-objc-templatify text) + (should (equal "createBookWithTitle:arg0 andAuthor:arg1" (buffer-string))) + (should (looking-at "arg0")) + (should (null (overlay-get (company-template-field-at) 'display)))))) + +(ert-deftest company-template-objc-templatify () + (with-temp-buffer + (let ((text "createBookWithTitle:(NSString) andAuthor:(id)")) + (insert text) + (company-template-objc-templatify text) + (should (equal (buffer-string) text)) + (company-template-field-assert-text "(NSString)"))))