;ELC   
;;; Compiled
;;; in Emacs version 30.2
;;; with all optimizations.


#@19 Marker for point.
(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305!\203 \305\306\307\"\210\300\207" [require elp ert evil fboundp font-lock-add-keywords emacs-lisp-mode (("(\\(evil-test-buffer\\)\\>" 1 font-lock-keyword-face))] 3)
(defvar evil-test-point nil (#$ . 83))#@30 Marker for Visual beginning.
(make-variable-buffer-local 'evil-test-point)
(defvar evil-test-visual-start nil (#$ . 370))#@24 Marker for Visual end.
(make-variable-buffer-local 'evil-test-visual-start)
(defvar evil-test-visual-end nil (#$ . 497))#@1278 Execute FORMS in a temporary buffer.
The following optional keywords specify the buffer's properties:

:state STATE            The initial state, defaults to `normal'.
:visual SELECTION       The Visual selection, defaults to `char'.
:point-start STRING     String for matching beginning of point,
                        defaults to "[".
:point-end STRING       String for matching end of point,
                        defaults to "]".
:visual-start STRING    String for matching beginning of
                        Visual selection, defaults to "<".
:visual-end STRING      String for matching end of
                        Visual selection, defaults to ">".

Then follows one or more forms. If the first form is a string,
it is taken to be a buffer description as passed to
`evil-test-buffer-from-string', and initializes the buffer.
Subsequent string forms validate the buffer.

If a form is a list of strings or vectors, it is taken to be a
key sequence and is passed to `execute-kbd-macro'.  If the form
is (file FILENAME CONTENTS), then the test fails unless the
contents of FILENAME equal CONTENTS.  If the form is (error
SYMBOL ...) then the test fails unless an error of type SYMBOL is
raised.  Remaining forms are evaluated as-is.

(fn [[KEY VALUE]...] FORMS...)#@13 

(fn FORM)
(byte-code "\300\301!\210\302\303\304\305!\203 \305\202 \306\"\207" [make-variable-buffer-local evil-test-visual-end defvaralias evil-test-select-enable-clipboard boundp select-enable-clipboard x-select-enable-clipboard] 4)
(defalias 'evil-test-buffer '(macro . #[128 "\300\301\211\211C\301C\301\211\211C\301C\302\n\242!\203l 	\211A\262\242\262	\211A\262\242\262\303\267\202 \2065 \304\240\210\202 \206A \304\240\210\202 \262	\202 \262\202 \206[ \304\240\210\202 \211\206g \304\240\210\202 	\242;\203| 	\211A\262\242\262\305\306\307\310D\n\242\n\242\310\nD	\242	\242\257D\311B\312\313\314\306\315\316\317\320\321%\"BBBBD\322BBE\207" [normal nil keywordp #s(hash-table test eq purecopy t data (:point-start 46 :point-end 58 :state 70 :visual 77 :visual-start 84 :visual-end 96)) "" let buffer evil-test-buffer-from-string quote ((kill-ring kill-ring) (kill-ring-yank-pointer kill-ring-yank-pointer) evil-test-select-enable-clipboard message-log-max) unwind-protect save-window-excursion with-current-buffer (switch-to-buffer-other-window (current-buffer)) (buffer-enable-undo) mapcar make-closure #[257 "\304<\203 \242\305=\203 \210\211\243\242\243\243\262;\2032 \306\307\303\242D\307\302\242D\307\301\242D\307\300\242D\257\202w \242\310=\203E \311A@AA@E\202w \242;\204Z \312\242!\204Z \242\242\313>\203i \314\315\316\317\320\321BEED\202w \242\322>\203v \314D\202w \203\203 \323\324\307DF\207\207" [V0 V1 V2 V3 nil error evil-test-buffer-string quote file evil-test-file-contents vectorp (kbd vconcat) execute-kbd-macro apply #'vconcat mapcar #'listify-key-sequence list (kbd vconcat) should-error :type] 9 (#$ . 1907)] ((when (buffer-name buffer) (kill-buffer buffer)))] 25 (#$ . 625)]))#@118 Verify that the Visual selection contains STRING.

(fn STRING &optional END-STRING BEFORE-PREDICATE AFTER-PREDICATE)
(byte-code "\300\301\302\303#\300\207" [function-put evil-test-buffer lisp-indent-function defun] 4)
(defalias 'evil-test-selection '(macro . #[1025 "\300\301\302\303\304\305		EFE\301\306\303\305\nE\304\211\257EE\207" [progn save-excursion (goto-char (or evil-visual-beginning (region-beginning))) evil-test-text nil or (goto-char (or evil-visual-end (region-end)))] 13 (#$ . 3694)]))#@469 Validate the current buffer according to STRING.
If STRING contains an occurrence of POINT-START immediately
followed by POINT-END, that position is compared against point.
If STRING contains an occurrence of VISUAL-START followed by
VISUAL-END, those positions are compared against the Visual selection.
POINT-START and POINT-END default to [ and ].
VISUAL-START and VISUAL-END default to < and >.

(fn STRING &optional POINT-START POINT-END VISUAL-START VISUAL-END)
(byte-code "\300\301\302\303#\300\207" [function-put evil-test-selection lisp-indent-function defun] 4)
(defalias 'evil-test-buffer-string #[1281 "p\305%\306\211\211\211\307\310\"\216rq\210\311 \262\203- e{\262d{\262	\203: \n\203: 	\n{\262rq\210\204F \203N \312\"\210\202Z \212eb\210\312\306\313\314$)\210\211\205~ \212\206e \315 b\210\312\306\306#)\210\212\f\206u \316 b\210\312\306\211\211$)+\207" [evil-test-point evil-test-visual-start evil-test-visual-end evil-visual-beginning evil-visual-end evil-test-marker-buffer-from-string nil make-closure #[0 "\301\300!\207" [V0 kill-buffer] 2] buffer-string evil-test-text bobp eobp region-beginning region-end] 16 (#$ . 4212)])#@578 Create a new buffer according to STRING.
If STRING contains an occurrence of POINT-START immediately
followed by POINT-END, then point is moved to that position.
If STRING contains an occurrence of VISUAL-START followed by
VISUAL-END, then a Visual selection is created with those boundaries.
POINT-START and POINT-END default to [ and ].
VISUAL-START and VISUAL-END default to < and >.
STATE is the initial state; it defaults to `normal'.
VISUAL is the Visual selection: it defaults to `char'.

(fn STRING &optional STATE POINT-START POINT-END VISUAL VISUAL-START VISUAL-END)
(defalias 'evil-test-buffer-from-string #[1793 "\305\206 \306!\307%r\211q\210\211\310	!\210\311\312\313\"\210\314!\203W \314	!\203W \315	#\210\n\203W \nb\210\316 \210U\203J \f	U\204W \315	\317$\210\nb\210\316 \210\314\n!\203` \nb\210)\207" [evil-test-visual-start evil-test-visual-end evil-test-point evil-visual-beginning evil-visual-end evil-visual-type char evil-test-marker-buffer-from-string evil-change-state add-hook after-change-major-mode-hook evil-initialize markerp evil-visual-select evil-visual-refresh -1] 15 (#$ . 5392)])#@552 Create a new marker buffer according to STRING.
If STRING contains an occurrence of POINT-START immediately
followed by POINT-END, that position is stored in the
buffer-local variable `evil-test-point'. Similarly,
if STRING contains an occurrence of VISUAL-START followed by
VISUAL-END, those positions are stored in the variables
`evil-test-visual-beginning' and `evil-test-visual-end'.
POINT-START and POINT-END default to [ and ].
VISUAL-START and VISUAL-END default to < and >.

(fn STRING &optional POINT-START POINT-END VISUAL-START VISUAL-END)
(defalias 'evil-test-marker-buffer-from-string #[1281 "\206 \303\304\305!\203 \306!\202 \206 \307!\304\305!\203) \306!\202. \206. \310!\304\305!\203> \306!\202C \206C \311!\304\305!\203S \306!\202X \206X \312!r\313\314!q\210p\212c)\210\212G\315V\203\264 G\315V\203\234 \316\317\320\211$\321\322#\203\264 \315\224b\210\323\224\323\225|\210\324\224\324\225|\210\325 `\321\223\202\264 \316\321\322#\203\264 \315\224b\210\315\224\315\225|\210\325 `\321\223)\212G\315V\203\364 G\315V\203\364 \316\321\322#\203\334 \315\224b\210\315\224\315\225|\210\325 `\321\223\316\321\322#\203\364 \315\224b\210\315\224\315\225|\210\325 `\321\223*\207" [evil-test-point evil-test-visual-start evil-test-visual-end "" regexp-quote characterp string "[" "]" "<" ">" generate-new-buffer " *test*" 0 re-search-forward format "\\(%s\\)[^%s]?\\(%s\\)" nil t 2 1 make-marker] 17 (#$ . 6532)])#@296 Verify the text around point.
BEFORE is the expected text before point, and AFTER is
the text after point. BEFORE-PREDICATE is a predicate function
to execute at the beginning of the text, and AFTER-PREDICATE
is executed at the end.

(fn BEFORE AFTER &optional BEFORE-PREDICATE AFTER-PREDICATE)
(defalias 'evil-test-text #[1026 "\203S \301!\203 \262\302\262\202S \303C\3041( e`GZ]`{D0\2023 \305\240\210\211@AD\262\306C\302C\307\310%\216\311\242\"\240)\204Q \312\242!\210\266\203\245 \301!\203e \210\302\262\202\245 \303C\3131z `d`G\\^{D0\202\205 \305\240\210\211@AD\262\314C\302C\307\315%\216\311\242\"\240)\204\243 \312\242!\210\266\203\360 \316\317\320\"BB\212G[u\210\321C\3221\304 C0\202\317 \305\240\210\211@AD\262\323C\302C\307\324%\216\311\242\"\240)\204\355 \312\242!\210*\266\211\205<\316\317\325\"BB\212Gu\210\321C\3261C0\202\305\240\210\211@AD\262\327C\302C\307\330%\216\311\242\"\240)\2047\312\242!\210\210\242*\266\202\207" [ert--infos functionp nil string= (error) signal #1=#:ert-form-evaluation-aborted-105 make-closure #[0 "\300\304\305\303\242\302BE\301\242\306=?\205 \307\301\242D\244\301\242\306=?\205, \310\311!\211\205* \312\313\302\"D\262\244\240\210\314\300\242!\207" [V0 V1 V2 V3 (should (string= (buffer-substring (max (point-min) (- (point) (length before))) (point)) before)) :form #1# :value ert--get-explainer string= :explanation apply ert--signal-should-execution] 7] apply ert-fail (error) #2=#:ert-form-evaluation-aborted-110 #[0 "\300\304\305\303\242\302BE\301\242\306=?\205 \307\301\242D\244\301\242\306=?\205, \310\311!\211\205* \312\313\302\"D\262\244\240\210\314\300\242!\207" [V0 V1 V2 V3 (should (string= (buffer-substring (point) (min (point-max) (+ (point) (length after)))) after)) :form #2# :value ert--get-explainer string= :explanation apply ert--signal-should-execution] 7] "Info: " format "Expect `%s' at the beginning" funcall (error) #3=#:ert-form-evaluation-aborted-115 #[0 "\300\304\305\303\242\302BE\301\242\306=?\205 \307\301\242D\244\301\242\306=?\205, \310\311!\211\205* \312\313\302\"D\262\244\240\210\314\300\242!\207" [V0 V1 V2 V3 (should (funcall before-predicate)) :form #3# :value ert--get-explainer funcall :explanation apply ert--signal-should-execution] 7] "Expect `%s' at the end" (error) #4=#:ert-form-evaluation-aborted-120 #[0 "\300\304\305\303\242\302BE\301\242\306=?\205 \307\301\242D\244\301\242\306=?\205, \310\311!\211\205* \312\313\302\"D\262\244\240\210\314\300\242!\207" [V0 V1 V2 V3 (should (funcall after-predicate)) :form #4# :value ert--get-explainer funcall :explanation apply ert--signal-should-execution] 7]] 14 (#$ . 7997)])#@108 Verify that the region contains STRING.

(fn STRING &optional END-STRING BEFORE-PREDICATE AFTER-PREDICATE)
(defalias 'evil-test-region '(macro . #[1025 "\300\301\302\303\304\305		EFE\301\306\303\305\nE\304\211\257EE\207" [progn save-excursion (goto-char (region-beginning)) evil-test-text nil or (goto-char (region-end))] 13 (#$ . 10713)]))#@113 Verify that OVERLAY contains STRING.

(fn OVERLAY STRING &optional END-STRING BEFORE-PREDICATE AFTER-PREDICATE)
(byte-code "\300\301\302\303#\300\207" [function-put evil-test-region lisp-indent-function defun] 4)
(defalias 'evil-test-overlay '(macro . #[1282 "\300\301\302\303DD\304\305\306		EFE\301\302\307	DD\304\306\nE\305\211\257EE\207" [progn save-excursion goto-char overlay-start evil-test-text nil or overlay-end] 14 (#$ . 11070)]))#@520 Create a temp file with CONTENT and bind its name to FILE-VAR within BODY.
FILE-VAR must be a symbol which contains the name of the
temporary file within the macro body. CONTENT is either a string
to be used as the content of the temporary file or a form to be
executed with the temporary file's buffer as (current-buffer),
see `with-temp-file'. BODY contains the forms to be executed
while the temporary file exists. The temporary file is deleted at
the end of the execution of BODY.

(fn FILE-VAR CONTENT &rest BODY)
(byte-code "\300\301\302\303#\300\207" [function-put evil-test-overlay lisp-indent-function defun] 4)
(defalias 'evil-with-temp-file '(macro . #[642 "\300\301BC\302;\203 \303D\202 E\304\305DC\"BBB\207" [let ((make-temp-file "evil-test")) with-temp-file insert append delete-file] 10 (#$ . 11530)]))#@80 Ensure that the contents of file with NAME equal CONTENTS.

(fn NAME CONTENTS)
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put evil-with-temp-file lisp-indent-function 2 put edebug-form-spec (symbolp form body)] 5)
(defalias 'evil-test-file-contents #[514 "\300\301\302\"r\211q\210\303\304\"\216\305!\210\306C\3071 \310 D0\202* \311\240\210\211@AD\262\312C\313C\303\314%\216\315\242\"\240)\204H \316\242!\210\210\242*\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents string= (error) buffer-string signal #1=#:ert-form-evaluation-aborted-125 nil #[0 "\300\304\305\303\242\302BE\301\242\306=?\205 \307\301\242D\244\301\242\306=?\205, \310\311!\211\205* \312\313\302\"D\262\244\240\210\314\300\242!\207" [V0 V1 V2 V3 (should (string= (buffer-string) contents)) :form #1# :value ert--get-explainer string= :explanation apply ert--signal-should-execution] 7] apply ert-fail] 13 (#$ . 12364)])
(provide 'evil-test-helpers)
