You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
phpinspect.el/test/phpinspect-test-env.el

53 lines
1.9 KiB
EmacsLisp

;;; phpinspect-test-env.el --- Unit tests for phpinspect.el -*- lexical-binding: t; -*-
(require 'phpinspect-worker)
(require 'phpinspect-cache)
(require 'phpinspect-parser)
;; Make sure that the worker is running. TODO: fully encapsulate the worker the
;; data types that are used in tests so that we don't depend on some global
;; worker object for tests.
(phpinspect-ensure-worker)
(phpinspect-purge-cache)
(defvar phpinspect-test-directory
(file-name-directory (macroexp-file-name))
"Directory that phpinspect tests reside in.")
(defun phpinspect--make-dummy-project (&optional fs project-root)
(setq fs (or fs (phpinspect-make-virtual-fs))
project-root (or project-root "could never be a real project root"))
(let ((project (phpinspect--make-project
:root project-root
:fs fs
:autoload (phpinspect-make-autoloader
:fs fs
:project-root-resolver (lambda () project-root))
:worker 'nil-worker)))
(setf (phpinspect-autoloader-file-indexer (phpinspect-project-autoload project))
(phpinspect-project-make-file-indexer project))
project))
(defvar phpinspect-test-php-file-directory
(expand-file-name "fixtures" phpinspect-test-directory)
"Directory with syntax trees of example PHP files.")
(defun phpinspect-test-read-fixture-data (name)
(with-temp-buffer
(insert-file-contents-literally (concat phpinspect-test-php-file-directory "/" name ".eld"))
(read (current-buffer))))
(defun phpinspect-test-read-fixture-serialization (name)
(with-temp-buffer
(insert-file-contents-literally (concat phpinspect-test-php-file-directory "/" name ".eld"))
(eval (read (current-buffer)) t)))
(defun phpinspect-test-parse-fixture-code (name)
(phpinspect-parse-file
(concat phpinspect-test-php-file-directory "/" name ".php")))
(provide 'phpinspect-test-env)