Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# matrix:
# include:
# - language: emacs-lisp
# sudo: no
# env:
# - EVM_EMACS=emacs-25.1-travis
# before_install:
# - curl -fsSkL https://gist.github.com/rejeep/ebcd57c3af83b049833b/raw > travis.sh && source ./travis.sh
# - evm install "$EVM_EMACS" --use --skip
# install:
# - cask --debug --verbose
# script:
# - cask exec buttercup -L . -p phpactor-install-or-update
# - cd ~/.emacs.d/phpactor && composer install --no-dev
# - cd -

# - language: php
# php:
# - 7.2
# script:
# - cd ~/.emacs.d/phpactor && composer install --no-dev

language: php
php:
- 7.1
sudo: no
env:
- EVM_EMACS=emacs-25.1-travis
before_install:
- curl -fsSkL https://gist.github.com/rejeep/ebcd57c3af83b049833b/raw > travis.sh && source ./travis.sh
- evm install "$EVM_EMACS" --use --skip
install:
- cask --debug --verbose
script:
- cask exec buttercup -L .
# - cask exec buttercup -L . -p phpactor-install-or-update # running only this test prepares ./emacs.d/phpactor folder
# - cd ~/.emacs.d/phpactor && composer install --no-dev
# - cd - && cask exec buttercup -L .
3 changes: 2 additions & 1 deletion Cask
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
(package "phpactor" "0.1.0" "Interface to Phpactor")
(source melpa)
(source gnu)

(package-file "phpactor.el")
(package-file "company-phpactor.el")

(development
(depends-on "php-mode")
(depends-on "auto-complete"))
(depends-on "buttercup"))
18 changes: 5 additions & 13 deletions phpactor.el
Original file line number Diff line number Diff line change
Expand Up @@ -78,15 +78,6 @@
#'(lambda (v) (if (consp v)
(and (eq 'root (car v)) (stringp (cdr v)))
(or (null v) (stringp v))))))
;;;###autoload
(progn
(defvar phpactor-working-dir nil
"Path to working directory for Phpactor.")
(make-variable-buffer-local 'phpactor-working-dir)
(put 'phpactor-executable 'safe-local-variable
#'(lambda (v) (if (consp v)
(and (eq 'root (car v)) (stringp (cdr v)))
(or (null v) (stringp v))))))

(defvar phpactor--debug nil)
(defvar phpactor-history-size 100)
Expand All @@ -105,7 +96,7 @@
lib-dir)
(if (and byte-compiled-dir (file-directory-p byte-compiled-dir))
(file-name-directory byte-compiled-dir)
(setq lib-dir (locate-library "phpactor.el"))
(setq lib-dir (file-name-directory (locate-library "phpactor.el")))
(when (and lib-dir (file-directory-p lib-dir))
(file-name-directory lib-dir))))
"Path to phpactor.el installed directory.
Expand Down Expand Up @@ -156,14 +147,15 @@ of GitHub.")
(php-runtime-quote-string (concat directory file))
(php-runtime-quote-string (concat phpactor-install-directory file)))
do (php-runtime-expr code))
(composer nil "install" "--no-dev")))
(composer nil "install" "--no-dev")
;; (call-process "composer" nil t nil "install" "--no-dev")
))
(defalias 'phpactor-update #'phpactor-install-or-update)

(defun phpactor-get-working-dir ()
"Return working directory of Phpactor."
(directory-file-name
(expand-file-name
(or phpactor-working-dir (php-project-get-root-dir)))))
(expand-file-name (php-project-get-root-dir))))

(defun phpactor--expand-local-file-name (name)
"Expand file name by `NAME'."
Expand Down
44 changes: 44 additions & 0 deletions tests/e2e/test-sanity.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
(require 'phpactor)

(defun buffer-string* (buffer)
(with-current-buffer buffer
(buffer-substring-no-properties (point-min) (point-max) )))

(describe "var: `phpactor-history-size'"
(it "should have default value"
(expect phpactor-history-size :to-be 100)
))

(describe "var: `phpactor-install-directory'"
(it "should have some value"
(display-warning 'buttercup (format "phpactor install folder is : %s" phpactor-install-directory))
(expect phpactor-install-directory :not :to-be nil)
))

(describe ": `phpactor--lisp-directory'" ;; I prefer having a test as I'm not that really fine with it being nil
(it "should have some value"
(display-warning 'buttercup (format "phpactor lisp folder is : %s" phpactor--lisp-directory))
(expect phpactor--lisp-directory :not :to-be nil)
))

(describe "defun: `phpactor-install-or-update'"
(it "should find phpactor installed under phpactor-install-directory :"
(let ((timeout-duration 300))
(phpactor-install-or-update)
(with-timeout
(timeout-duration (display-warning 'buttercup (format "Error : timeout waiting %s seconds for composer install to finish" timeout-duration)))
(while (not (file-exists-p (f-join phpactor-install-directory "vendor/bin/phpactor")))
(sleep-for 1)))
(expect (phpactor-find-executable) :to-equal (f-join phpactor-install-directory "vendor/bin/phpactor"))
)))

(describe "defun: `phpactor-get-working-dir'"
(it "should rely on php-project"
(spy-on 'php-project-get-root-dir :and-call-through)
;; (display-warning 'buttercup (format "phpactor-working-dir is : %s" phpactor-working-dir))
(with-current-buffer (find-file "tests/src/Book.php")
;; (message "phpactor-working-dir is : %s" (php-project-get-root-dir))
(phpactor-get-working-dir)
(expect 'php-project-get-root-dir :to-have-been-called)
)
))