test/genurl-tests.lisp
(defpackage murja.tests.genurl
(:use :cl :fiveam :murja.genurl)
(:import-from :murja.tests :prepare-db-and-server :drakma->string :url :main-suite :prepare-db-and-server)
(:local-nicknames (:settings :murja.setting-definitions)
(:tabs :murja.view.components.tabs)
(:feed :murja.view.rss)))
(in-package :murja.tests.genurl)
(in-suite main-suite)
(def-test genurl-test (:fixture prepare-db-and-server)
(let ((old-prefix (settings:prefix)))
(unwind-protect
(progn
;; initial state is as expected
(is (string= (settings:prefix) ""))
(is (string=
(route->url 'feed::rss-single-item :feed-id "auto-testing" :item-id "lololo")
"/feeds/auto-testing/item/lololo"))
;; changing setting works as expected
(settings:prefix "/a-random-test-murja-instance")
(is (string=
(route->url 'feed::rss-single-item :feed-id "auto-testing" :item-id "lololo")
"/a-random-test-murja-instance/feeds/auto-testing/item/lololo"))
;; instances of tab class keep their inner url prefix-less
(is (string= "/"
(tabs::tab-url
(gethash 'murja.view.blog-root:root murja.view.components.tabs::*tabs*)))))
(settings:prefix old-prefix))))