bugs fixed; tests repaired
This commit is contained in:
+11
-8
@@ -12,15 +12,15 @@
|
|||||||
|
|
||||||
(defn set-note [date title text]
|
(defn set-note [date title text]
|
||||||
(let [key (build-key date title)]
|
(let [key (build-key date title)]
|
||||||
(do
|
(redis/hset db note key text)))
|
||||||
(redis/hset db views key 0)
|
|
||||||
(redis/hset db note key text))))
|
|
||||||
|
|
||||||
(defn get-note [date title]
|
(defn get-note [date title]
|
||||||
(let [key (build-key date title)]
|
(let [key (build-key date title)
|
||||||
(do
|
text (redis/hget db note key)]
|
||||||
(redis/hincrby db views key 1)
|
(when text
|
||||||
(redis/hget db note key))))
|
(do
|
||||||
|
(redis/hincrby db views key 1)
|
||||||
|
text))))
|
||||||
|
|
||||||
(defn get-views [date title]
|
(defn get-views [date title]
|
||||||
(redis/hget db views (build-key date title)))
|
(redis/hget db views (build-key date title)))
|
||||||
@@ -29,4 +29,7 @@
|
|||||||
(redis/hexists db note (build-key date title)))
|
(redis/hexists db note (build-key date title)))
|
||||||
|
|
||||||
(defn delete-note [date title]
|
(defn delete-note [date title]
|
||||||
(redis/hdel db note (build-key date title)))
|
(let [key (build-key date title)]
|
||||||
|
(do
|
||||||
|
(redis/hdel db views key)
|
||||||
|
(redis/hdel db note key))))
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
(apply str
|
(apply str
|
||||||
(interpose "|" (concat ["PT+Serif:700" "Noticia+Text:700"]
|
(interpose "|" (concat ["PT+Serif:700" "Noticia+Text:700"]
|
||||||
(vals (select-keys params
|
(vals (select-keys params
|
||||||
[:header-font :text-font])))))
|
[:header-font :text-font])))))
|
||||||
"&subset=latin,cyrillic") " " "+")
|
"&subset=latin,cyrillic") " " "+")
|
||||||
:rel "stylesheet"
|
:rel "stylesheet"
|
||||||
:type "text/css"}]
|
:type "text/css"}]
|
||||||
|
|||||||
@@ -11,14 +11,15 @@
|
|||||||
(def page-width
|
(def page-width
|
||||||
(mixin
|
(mixin
|
||||||
:width :800px))
|
:width :800px))
|
||||||
|
|
||||||
(def helvetica-neue
|
(def helvetica-neue
|
||||||
(mixin
|
(mixin
|
||||||
:font-weight 300
|
:font-weight 300
|
||||||
:font-family (gen-fontlist "Helvetica Neue"
|
:font-family (gen-fontlist "Helvetica Neue"
|
||||||
"Helvetica"
|
"Helvetica"
|
||||||
"Arial"
|
"Arial"
|
||||||
"Lucida Grande"
|
"Lucida Grande"
|
||||||
"sans-serif")))
|
"sans-serif")))
|
||||||
(def central-element
|
(def central-element
|
||||||
(mixin
|
(mixin
|
||||||
page-width
|
page-width
|
||||||
@@ -29,13 +30,13 @@
|
|||||||
|
|
||||||
(defn color [theme tone]
|
(defn color [theme tone]
|
||||||
(get-in {:dark {:background :#333
|
(get-in {:dark {:background :#333
|
||||||
:foreground :#ccc
|
:foreground :#ccc
|
||||||
:background-halftone :#444
|
:background-halftone :#444
|
||||||
:foreground-halftone :#bbb }
|
:foreground-halftone :#bbb }
|
||||||
:default {:background :#fff
|
:default {:background :#fff
|
||||||
:foreground :#333
|
:foreground :#333
|
||||||
:background-halftone :#efefef
|
:background-halftone :#efefef
|
||||||
:foreground-halftone :#888 }} [theme tone]))
|
:foreground-halftone :#888 }} [theme tone]))
|
||||||
|
|
||||||
(defn global-css [params]
|
(defn global-css [params]
|
||||||
(let [theme (params :theme)
|
(let [theme (params :theme)
|
||||||
@@ -46,69 +47,71 @@
|
|||||||
foreground (color theme :foreground)
|
foreground (color theme :foreground)
|
||||||
background-halftone (color theme :background-halftone)
|
background-halftone (color theme :background-halftone)
|
||||||
foreground-halftone (color theme :foreground-halftone)]
|
foreground-halftone (color theme :foreground-halftone)]
|
||||||
(css
|
(css
|
||||||
(rule ".landing-button"
|
(rule ".landing-button"
|
||||||
:box-shadow [0 :2px :5px :#aaa]
|
:box-shadow [0 :2px :5px :#aaa]
|
||||||
:text-decoration :none
|
:text-decoration :none
|
||||||
:font-size :1.5em
|
:font-size :1.5em
|
||||||
:background :#0a2
|
:background :#0a2
|
||||||
:color :white
|
:color :white
|
||||||
:border :none
|
:border :none
|
||||||
:border-radius :10px
|
:border-radius :10px
|
||||||
:padding :10px
|
:padding :10px
|
||||||
helvetica-neue
|
helvetica-neue
|
||||||
(rule "&:hover"
|
(rule "&:hover"
|
||||||
:background :#0b2))
|
:background :#0b2))
|
||||||
(rule "html, body"
|
(rule "html, body"
|
||||||
:background background
|
:background background
|
||||||
:color foreground
|
:color foreground
|
||||||
:margin 0
|
:margin 0
|
||||||
:padding 0)
|
:padding 0)
|
||||||
(rule "#hero"
|
(rule ".helvetica-neue"
|
||||||
:padding-top :5em
|
helvetica-neue)
|
||||||
:padding-bottom :5em
|
(rule "#hero"
|
||||||
:text-align :center
|
:padding-top :5em
|
||||||
(rule "h2"
|
:padding-bottom :5em
|
||||||
helvetica-neue))
|
:text-align :center
|
||||||
(rule "article"
|
(rule "h2"
|
||||||
central-element
|
helvetica-neue))
|
||||||
:line-height (% 140)
|
(rule "article"
|
||||||
:font-family text-fonts
|
central-element
|
||||||
:font-size :1.2em
|
:line-height (% 140)
|
||||||
(rule "& > h1:first-child"
|
:font-family text-fonts
|
||||||
:text-align :center
|
:font-size :1.2em
|
||||||
:margin :2em))
|
(rule "& > h1:first-child"
|
||||||
(rule "pre"
|
:text-align :center
|
||||||
:border-radius :3px
|
:margin :2em))
|
||||||
:padding :1em
|
(rule "pre"
|
||||||
:border [:1px :dotted foreground-halftone]
|
:border-radius :3px
|
||||||
:background background-halftone)
|
:padding :1em
|
||||||
(rule "*:focus"
|
:border [:1px :dotted foreground-halftone]
|
||||||
:outline [:0px :none :transparent])
|
:background background-halftone)
|
||||||
(rule "textarea"
|
(rule "*:focus"
|
||||||
page-width
|
:outline [:0px :none :transparent])
|
||||||
:font-family :Courier
|
(rule "textarea"
|
||||||
:font-size :1.2em
|
page-width
|
||||||
:border :none
|
:font-family :Courier
|
||||||
; TODO: make this dynamic
|
:font-size :1.2em
|
||||||
:height :500px
|
:border :none
|
||||||
:margin-bottom :2em)
|
; TODO: make this dynamic
|
||||||
(rule ".hidden"
|
:height :500px
|
||||||
:display :none)
|
:margin-bottom :2em)
|
||||||
(rule ".button"
|
(rule ".hidden"
|
||||||
:border-radius :3px
|
:display :none)
|
||||||
helvetica-neue
|
(rule ".button"
|
||||||
:cursor :pointer
|
:border-radius :3px
|
||||||
:border [:1px :solid foreground]
|
helvetica-neue
|
||||||
:opacity 0.8
|
:cursor :pointer
|
||||||
:font-size :1em
|
:border [:1px :solid foreground]
|
||||||
:background background)
|
:opacity 0.8
|
||||||
(rule ".central-element"
|
:font-size :1em
|
||||||
central-element)
|
:background background)
|
||||||
(rule "h1"
|
(rule ".central-element"
|
||||||
:font-size :2em)
|
central-element)
|
||||||
(rule "#preview-start-line"
|
(rule "h1"
|
||||||
:border-bottom [:1px :dashed foreground-halftone]
|
:font-size :2em)
|
||||||
:margin-bottom :5em)
|
(rule "#preview-start-line"
|
||||||
(rule "h1, h2, h3, h4"
|
:border-bottom [:1px :dashed foreground-halftone]
|
||||||
:font-family header-fonts))))
|
:margin-bottom :5em)
|
||||||
|
(rule "h1, h2, h3, h4"
|
||||||
|
:font-family header-fonts))))
|
||||||
|
|||||||
@@ -86,22 +86,21 @@
|
|||||||
|
|
||||||
(defpage "/:year/:month/:day/:title/export" {:keys [year month day title]}
|
(defpage "/:year/:month/:day/:title/export" {:keys [year month day title]}
|
||||||
(let [md-text (get-note [year month day] title)]
|
(let [md-text (get-note [year month day] title)]
|
||||||
(if md-text md-text (get-page 404))))
|
(if md-text md-text (status 404 (get-page 404)))))
|
||||||
|
|
||||||
(defpage "/:year/:month/:day/:title/stat" {:keys [year month day title]}
|
(defpage "/:year/:month/:day/:title/stat" {:keys [year month day title]}
|
||||||
(let [views (get-views [year month day] title)]
|
(let [views (get-views [year month day] title)]
|
||||||
(if views
|
(if views
|
||||||
(common/layout "Statistics"
|
(common/layout "Statistics"
|
||||||
[:article
|
[:article.helvetica-neue
|
||||||
[:table {:style "width: 100%"}
|
[:table {:style "width: 100%"}
|
||||||
[:tr
|
[:tr
|
||||||
[:td "Published"]
|
[:td "Published"]
|
||||||
[:td (interpose "-" [year month day])]]
|
[:td (interpose "-" [year month day])]]
|
||||||
[:tr
|
[:tr
|
||||||
[:td "Article views"]
|
[:td "Article views"]
|
||||||
[:td views]]
|
[:td views]]]])
|
||||||
]])
|
(status 404 (get-page 404)))))
|
||||||
(get-page 404))))
|
|
||||||
|
|
||||||
; New Note Posting
|
; New Note Posting
|
||||||
(defpage [:post "/post-note"] {:keys [draft session-key session-value]}
|
(defpage [:post "/post-note"] {:keys [draft session-key session-value]}
|
||||||
|
|||||||
@@ -34,16 +34,19 @@
|
|||||||
(has-body (send-request (url 2012 6 3 "some-title" "export")) test-note)))
|
(has-body (send-request (url 2012 6 3 "some-title" "export")) test-note)))
|
||||||
|
|
||||||
(deftest requests
|
(deftest requests
|
||||||
(testing "HTTP Statuses"
|
(testing "HTTP Status"
|
||||||
(testing "of a wrong access"
|
(testing "of a wrong access"
|
||||||
(has-status (send-request "/wrong-page") 404))
|
(has-status (send-request "/wrong-page") 404)
|
||||||
(has-status (send-request (url 2012 6 3 "lol")) 404)
|
(has-status (send-request (url 2012 6 3 "lol" "stat")) 404)
|
||||||
(has-status (send-request (url 2012 6 4 "wrong-title")) 404)
|
(has-status (send-request (url 2012 6 3 "lol" "export")) 404)
|
||||||
|
(has-status (send-request (url 2012 6 3 "lol")) 404)
|
||||||
|
(has-status (send-request (url 2012 6 4 "wrong-title")) 404))
|
||||||
(testing "of corrupt note-post"
|
(testing "of corrupt note-post"
|
||||||
(has-status (send-request [:post "/post-note"]) 400))
|
(has-status (send-request [:post "/post-note"]) 400))
|
||||||
(testing "valid accesses"
|
(testing "valid accesses"
|
||||||
(has-status (send-request "/new") 200)
|
(has-status (send-request "/new") 200)
|
||||||
(has-status (send-request (url 2012 6 3 "some-title")) 200)
|
(has-status (send-request (url 2012 6 3 "some-title")) 200)
|
||||||
(has-status (send-request (url 2012 6 3 "some-title" "export")) 200)
|
(has-status (send-request (url 2012 6 3 "some-title" "export")) 200)
|
||||||
(has-status (send-request (url 2012 6 3 "some-title" "theme" "dark")) 200)
|
(has-status (send-request (url 2012 6 3 "some-title" "stat")) 200)
|
||||||
(has-status (send-request "/") 200))))
|
(has-status (send-request (url 2012 6 3 "some-title")) 200)
|
||||||
|
(has-status (send-request "/") 200))))
|
||||||
|
|||||||
Reference in New Issue
Block a user