(should (member "filter" completions))
(should-not (member "position" completions)))))
-(ert-deftest css-test-complete-selector ()
+(ert-deftest css-test-foreign-completions ()
+ (let ((other-buffer-1 (generate-new-buffer "1"))
+ (other-buffer-2 (generate-new-buffer "2")))
+ (with-current-buffer other-buffer-1
+ (setq-local css-class-list-function (lambda () '("foo" "bar"))))
+ (with-current-buffer other-buffer-2
+ (setq-local css-class-list-function (lambda () '("bar" "baz"))))
+ (let ((completions
+ (css--foreign-completions 'css-class-list-function)))
+ ;; Completions from `other-buffer-1' and `other-buffer-2' should
+ ;; be merged.
+ (should (equal (seq-sort #'string-lessp completions)
+ '("bar" "baz" "foo"))))
+ (kill-buffer other-buffer-1)
+ (kill-buffer other-buffer-2)))
+
+(ert-deftest css-test-complete-selector-tag ()
(with-temp-buffer
(css-mode)
(insert "b")
(should (member "body" completions))
(should-not (member "article" completions)))))
+(ert-deftest css-test-complete-selector-class ()
+ (with-temp-buffer
+ (setq-local css-class-list-function (lambda () '("foo" "bar")))
+ (with-temp-buffer
+ (css-mode)
+ (insert ".f")
+ (let ((completions (css-mode-tests--completions)))
+ (should (equal completions '("foo")))))))
+
+(ert-deftest css-test-complete-selector-id ()
+ (with-temp-buffer
+ (setq-local css-id-list-function (lambda () '("foo" "bar")))
+ (with-temp-buffer
+ (css-mode)
+ (insert "#b")
+ (let ((completions (css-mode-tests--completions)))
+ (should (equal completions '("bar")))))))
+
(ert-deftest css-test-complete-nested-selector ()
(with-temp-buffer
(css-mode)