| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- ;;; gyp-tests.el - unit tests for gyp-mode.
 
- ;; Copyright (c) 2012 Google Inc. All rights reserved.
 
- ;; Use of this source code is governed by a BSD-style license that can be
 
- ;; found in the LICENSE file.
 
- ;; The recommended way to run these tests is to run them from the command-line,
 
- ;; with the run-unit-tests.sh script.
 
- (require 'cl)
 
- (require 'ert)
 
- (require 'gyp)
 
- (defconst samples (directory-files "testdata" t ".gyp$")
 
-   "List of golden samples to check")
 
- (defun fontify (filename)
 
-   (with-temp-buffer
 
-     (insert-file-contents-literally filename)
 
-     (gyp-mode)
 
-     (font-lock-fontify-buffer)
 
-     (buffer-string)))
 
- (defun read-golden-sample (filename)
 
-   (with-temp-buffer
 
-     (insert-file-contents-literally (concat filename ".fontified"))
 
-     (read (current-buffer))))
 
- (defun equivalent-face (face)
 
-   "For the purposes of face comparison, we're not interested in the
 
-    differences between certain faces. For example, the difference between
 
-    font-lock-comment-delimiter and font-lock-comment-face."
 
-   (case face
 
-     ((font-lock-comment-delimiter-face) font-lock-comment-face)
 
-     (t face)))
 
- (defun text-face-properties (s)
 
-   "Extract the text properties from s"
 
-   (let ((result (list t)))
 
-     (dotimes (i (length s))
 
-       (setq result (cons (equivalent-face (get-text-property i 'face s))
 
-                          result)))
 
-     (nreverse result)))
 
- (ert-deftest test-golden-samples ()
 
-   "Check that fontification produces the same results as the golden samples"
 
-   (dolist (sample samples)
 
-     (let ((golden (read-golden-sample sample))
 
-           (fontified (fontify sample)))
 
-       (should (equal golden fontified))
 
-       (should (equal (text-face-properties golden)
 
-                      (text-face-properties fontified))))))
 
- (defun create-golden-sample (filename)
 
-   "Create a golden sample by fontifying filename and writing out the printable
 
-    representation of the fontified buffer (with text properties) to the
 
-    FILENAME.fontified"
 
-   (with-temp-file (concat filename ".fontified")
 
-     (print (fontify filename) (current-buffer))))
 
- (defun create-golden-samples ()
 
-   "Recreate the golden samples"
 
-   (dolist (sample samples) (create-golden-sample sample)))
 
 
  |