diff options
author | Yuan Fu <casouri@gmail.com> | 2022-06-14 15:59:46 -0700 |
---|---|---|
committer | Yuan Fu <casouri@gmail.com> | 2022-06-14 15:59:46 -0700 |
commit | 98bfb240818bae14cd87a1ffeb8fae7cb7846e05 (patch) | |
tree | 16e8ab06875ed54e110cf98ccdbd7e78f15905c6 /test/lisp/textmodes/css-mode-tests.el | |
parent | 184d212042ffa5a4f02c92085d9b6e8346d66e99 (diff) | |
parent | 787c4ad8b0776280305a220d6669c956d9ed8a5d (diff) | |
download | emacs-98bfb240818bae14cd87a1ffeb8fae7cb7846e05.tar.gz emacs-98bfb240818bae14cd87a1ffeb8fae7cb7846e05.tar.bz2 emacs-98bfb240818bae14cd87a1ffeb8fae7cb7846e05.zip |
Merge remote-tracking branch 'savannah/master' into feature/tree-sitter
Diffstat (limited to 'test/lisp/textmodes/css-mode-tests.el')
-rw-r--r-- | test/lisp/textmodes/css-mode-tests.el | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/test/lisp/textmodes/css-mode-tests.el b/test/lisp/textmodes/css-mode-tests.el index 0ae1593508d..a746edf8944 100644 --- a/test/lisp/textmodes/css-mode-tests.el +++ b/test/lisp/textmodes/css-mode-tests.el @@ -419,5 +419,74 @@ (indent-region (point-min) (point-max)) (should (equal (buffer-string) orig))))) +(ert-deftest css-mode-test-selectors () + (let ((selectors + (with-temp-buffer + (insert-file-contents (ert-resource-file "css-selectors.txt")) + (string-lines (buffer-string))))) + (with-suppressed-warnings ((interactive-only font-lock-debug-fontify)) + (dolist (selector selectors) + (with-temp-buffer + (css-mode) + (insert selector " {\n}\n") + (font-lock-debug-fontify) + (goto-char (point-min)) + (unless (eq (get-text-property (point) 'face) + 'css-selector) + (should-not (format "Didn't recognize %s as a selector" + (buffer-substring-no-properties + (point) (line-end-position))))))) + ;; Test many selectors. + (dolist (selector selectors) + (with-temp-buffer + (css-mode) + (insert selector " ") + (dotimes (_ (random 5)) + (insert (seq-random-elt '(" , " " > " " + ")) + (seq-random-elt selectors))) + (insert "{\n}\n") + (font-lock-debug-fontify) + (goto-char (point-min)) + (unless (eq (get-text-property (point) 'face) + 'css-selector) + (should-not (format "Didn't recognize %s as a selector" + (buffer-substring-no-properties + (point) (line-end-position))))))) + ;; Test wrong separators. + (dolist (selector selectors) + (with-temp-buffer + (css-mode) + (insert selector " ") + (dotimes (_ (1+ (random 5))) + (insert (seq-random-elt '("=" " @ ")) + (seq-random-elt selectors))) + (insert "{\n}\n") + (font-lock-debug-fontify) + (goto-char (point-min)) + (when (eq (get-text-property (point) 'face) + 'css-selector) + (should-not (format "Recognized %s as a selector" + (buffer-substring-no-properties + (point) (line-end-position)))))))))) + +(ert-deftest scss-mode-test-selectors () + (let ((selectors + (with-temp-buffer + (insert-file-contents (ert-resource-file "scss-selectors.txt")) + (string-lines (buffer-string))))) + (with-suppressed-warnings ((interactive-only font-lock-debug-fontify)) + (dolist (selector selectors) + (with-temp-buffer + (scss-mode) + (insert selector " {\n}\n") + (font-lock-debug-fontify) + (goto-char (point-min)) + (unless (eq (get-text-property (point) 'face) + 'css-selector) + (should-not (format "Didn't recognize %s as a selector" + (buffer-substring-no-properties + (point) (line-end-position)))))))))) + + (provide 'css-mode-tests) ;;; css-mode-tests.el ends here |