From cf90fa002afec60e2c057348de24ca1d8bcbaaa4 Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Mon, 14 Mar 2016 02:20:50 -0400 Subject: add test/{get_users,set_user}, js/util.js, lots more --- src/guff/api/content-type.cr | 2 +- src/guff/api/methods.cr | 8 ++++++++ src/guff/api/test.cr | 38 ++++++++++++++++++++++++++++++++++ src/guff/handlers/api.cr | 4 +++- src/guff/page-features.cr | 8 ++++++++ src/guff/views/ecrs/test/auth.ecr | 26 +++++++++++++++++++---- src/guff/views/html/test/auth.cr | 43 ++------------------------------------- 7 files changed, 82 insertions(+), 47 deletions(-) (limited to 'src') diff --git a/src/guff/api/content-type.cr b/src/guff/api/content-type.cr index 589e6b0..648ee3a 100644 --- a/src/guff/api/content-type.cr +++ b/src/guff/api/content-type.cr @@ -1,6 +1,6 @@ module Guff::API::ContentType CONTENT_TYPES = { - "development": "text/html; charset=utf-8", + "development": "text/json; charset=utf-8", "production": "application/json; charset=utf8", } diff --git a/src/guff/api/methods.cr b/src/guff/api/methods.cr index 9b35596..0247460 100644 --- a/src/guff/api/methods.cr +++ b/src/guff/api/methods.cr @@ -350,6 +350,14 @@ module Guff "error": { text: "Test error response", }, + + "get_users": { + text: "Get mock list of users", + }, + + "set_user": { + text: "Set mock user", + }, } } diff --git a/src/guff/api/test.cr b/src/guff/api/test.cr index 7549c11..44b5e10 100644 --- a/src/guff/api/test.cr +++ b/src/guff/api/test.cr @@ -17,6 +17,44 @@ module Guff [{foo: "bar"}, {foo: "asdf"}].to_json end + MOCK_USERS = { + "users": [{ + "id": "0", + "name": "Guest", + "active": true, + }, { + "id": "1", + "name": "Admin", + "active": false, + }, { + "id": "2", + "name": "Test User 1", + "active": false, + }, { + "id": "2", + "name": "Test User 2", + "active": false, + }, { + "id": "3", + "name": "Test User<<<<>>>>>&&&&&&2", + "active": false, + }] + } + + private def do_test_get_users( + context : HTTP::Server::Context, + args : Hash(String, String) + ) + MOCK_USERS + end + + private def do_test_set_user( + context : HTTP::Server::Context, + args : Hash(String, String) + ) + { ok: true } + end + private def do_test_error( context : HTTP::Server::Context, args : Hash(String, String) diff --git a/src/guff/handlers/api.cr b/src/guff/handlers/api.cr index c6f78d7..eab0383 100644 --- a/src/guff/handlers/api.cr +++ b/src/guff/handlers/api.cr @@ -127,6 +127,8 @@ class Guff::Handlers::APIHandler < Guff::Handler version, get_posts, error, + get_users, + set_user, ], }) rescue e @@ -139,7 +141,7 @@ class Guff::Handlers::APIHandler < Guff::Handler end # send body - context.response.puts json + context.response << json end private def do_api_docs(context : HTTP::Server::Context) diff --git a/src/guff/page-features.cr b/src/guff/page-features.cr index 887197e..5b0c107 100644 --- a/src/guff/page-features.cr +++ b/src/guff/page-features.cr @@ -34,6 +34,14 @@ module Guff::PageFeatures # TODO metas: [] of Hash(String, String), }, + + "guff/util": { + deps: %w{jquery luigi-template}, + + scripts: %w{ + /guff-stuff/js/util.js + }, + }, } def self.add(key : String, page) diff --git a/src/guff/views/ecrs/test/auth.ecr b/src/guff/views/ecrs/test/auth.ecr index 4c032ec..c28f178 100644 --- a/src/guff/views/ecrs/test/auth.ecr +++ b/src/guff/views/ecrs/test/auth.ecr @@ -20,13 +20,31 @@
- Auth Test + Users + + + + + + + +
-
<%= - users - %>
+
+ + + Loading... + +
diff --git a/src/guff/views/html/test/auth.cr b/src/guff/views/html/test/auth.cr index b21ebf6..9f5d1ad 100644 --- a/src/guff/views/html/test/auth.cr +++ b/src/guff/views/html/test/auth.cr @@ -3,38 +3,7 @@ require "../page" class Guff::TestAuthHTMLView TITLE = "Guff Auth Test" - FEATURES = %w{bootstrap font-awesome} - - TEMPLATES = TemplateCache.new({ - user: "%{name}" - }) - - MOCK_USERS = [{ - "id": "0", - "name": "Guest", - "active": "1", - }, { - "id": "1", - "name": "Admin", - "active": "0", - }, { - "id": "2", - "name": "Test User 1", - "active": "0", - }, { - "id": "2", - "name": "Test User 2", - "active": "0", - }, { - "id": "3", - "name": "Test User<<<<>>>>>&&&&&&2", - "active": "0", - }] + FEATURES = %w{bootstrap font-awesome guff/util} def self.run(models, context : HTTP::Server::Context) new(models).run(context) @@ -46,19 +15,11 @@ class Guff::TestAuthHTMLView def run(context) page = PageHTMLView.new(TITLE, self.to_s) page.add_features(FEATURES) + page.scripts << "/guff-stuff/test/auth.js" context.response.content_type = page.content_type context.response.puts page end - def users - MOCK_USERS.map { |row| - TEMPLATES[:user].run(row.merge({ - "name": h(row["name"]), - "css": (row["active"] == "1") ? "active" : "", - })) - }.join("") - end - def h(s : String) HTML.escape(s || "") end -- cgit v1.2.3