summary refs log tree commit diff
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rw-r--r--t/01_basic.t43
1 files changed, 43 insertions, 0 deletions
diff --git a/t/01_basic.t b/t/01_basic.t
new file mode 100644
index 0000000..5fb3212
--- /dev/null
+++ b/t/01_basic.t
@@ -0,0 +1,43 @@
+use strict;
+use warnings;
+use Test::More;
+
+use Plack::Test;
+use Plack::Builder;
+use HTTP::Request::Common;
+
+#use AnyEvent::Redis;
+#my $redis = AnyEvent::Redis->new(port => 6379, server => '127.0.0.1');
+#$redis->flushall;
+
+my $handler = builder {
+    enable "APIRateLimit";
+    #enable "APIRateLimit", requests_per_hour => 2, backend => "Hash";
+    #enable "APIRateLimit",
+        #requests_per_hour => 2,
+        #backend => [ "Redis", { port => 6379, server => '127.0.0.1' } ];
+    sub { [ '200', [ 'Content-Type' => 'text/html' ], ['hello world'] ] };
+};
+
+test_psgi
+    app    => $handler,
+    client => sub {
+    my $cb = shift;
+    use YAML::Syck;
+    {
+        for ( 1 .. 2 ) {
+            my $req = GET "http://localhost/";
+            my $res = $cb->($req);
+            is $res->code, 200;
+	    ok $res->headers('X-RateLimit-Limit');
+#	    warn Dump $res;
+        }
+        my $req = GET "http://localhost/";
+        my $res = $cb->($req);
+        is $res->code, 503;
+	ok $res->headers('X-RateLimit-Reset');
+#	warn Dump $res;
+    }
+};
+
+done_testing;