]> code.delx.au - gnu-emacs-elpa/blobdiff - tests/navigation.el
Make a new release
[gnu-emacs-elpa] / tests / navigation.el
index bbd486114bc81b9cde5a5686c782dc2e8f126a9f..d7a8314cd311279a8e87a3d27de49c2f261d0d1a 100644 (file)
@@ -1,6 +1,6 @@
 ;;; tests/navigation.el --- Some tests for js2-mode.
 
-;; Copyright (C) 2009, 2011-2013  Free Software Foundation, Inc.
+;; Copyright (C) 2009, 2011-2015  Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
 (require 'ert)
 (require 'js2-mode)
 
-(cl-defun js2-navigation-helper (buffer-content expected-point &optional (point-offset 1))
+(cl-defun js2-navigation-helper (buffer-content &optional expected-point (point-offset 1))
   (with-temp-buffer
     (insert buffer-content)
-    (js2-mode)
-    (goto-char (or (- (point) point-offset)))
-    (js2-jump-to-definition)
-    (should (= (point) expected-point))))
+    (let ((start-point (or (- (point) point-offset))))
+      (js2-mode)
+      (goto-char start-point)
+      (ignore-errors (js2-jump-to-definition))
+      (print (format "%d %d" (point) start-point))
+      (should (= (point) (or expected-point start-point))))))
 
 (ert-deftest js2-jump-to-var ()
   (js2-navigation-helper "var soup = 2; soup" 5))
 
 (ert-deftest js2-jump-to-object-property ()
   (js2-navigation-helper "var aObject = {prop1: 3, prop2: \"hello\"}; aObject.prop1" 16))
+
+(ert-deftest js2-no-jump-to-object-property ()
+  (js2-navigation-helper "var aObject = {prop1: 3, prop2: \"hello\"}; anotherObject.prop1"))
+
+(ert-deftest js2-jump-to-nested-property ()
+  (js2-navigation-helper "var aObject = {prop1: {prop2: { prop3: 4}}}; aObject.prop1.prop2.prop3" 33))
+
+(ert-deftest js2-jump-to-object ()
+  (js2-navigation-helper "var aObject = {prop1: 3, prop2: \"hello\"}; aObject.prop1" 5 13))
+
+(ert-deftest js2-jump-to-property ()
+  (js2-navigation-helper "aObject.func = functon(){};aObject.func" 9))
+
+(ert-deftest js2-jump-to-property-object-property ()
+  (js2-navigation-helper "aObject.value = {prop:1};aObject.value.prop" 18))