about summary refs log tree commit homepage
path: root/test
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2011-09-27 19:32:38 -0700
committerEric Wong <normalperson@yhbt.net>2011-10-03 14:48:41 -0700
commit7e8b1f6abe561e33644ca2bf30dc587e0bfac3c0 (patch)
tree7ed6f864b14a1725795c16f383562b012a3599b0 /test
parent26d775916fd3d967a98534eda44a983ea30d0811 (diff)
downloadraindrops-7e8b1f6abe561e33644ca2bf30dc587e0bfac3c0.tar.gz
It could be useful to know when the first and last peak time of
a maximum was.
Diffstat (limited to 'test')
-rw-r--r--test/test_watcher.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/test_watcher.rb b/test/test_watcher.rb
index 11a2d86..f22a954 100644
--- a/test/test_watcher.rb
+++ b/test/test_watcher.rb
@@ -117,4 +117,45 @@ class TestWatcher < Test::Unit::TestCase
     status, headers, body = @app.call(env)
     assert_equal "1", headers["X-Current"], headers.inspect
   end
+
+  def test_peaks
+    env = @req.class.env_for "/active/#@addr.txt"
+    status, headers, body = @app.call(env.dup)
+    start = headers["X-First-Peak-At"]
+    assert headers["X-First-Peak-At"], headers.inspect
+    assert headers["X-Last-Peak-At"], headers.inspect
+    assert_nothing_raised { Time.parse(headers["X-First-Peak-At"]) }
+    assert_nothing_raised { Time.parse(headers["X-Last-Peak-At"]) }
+    before = headers["X-Last-Peak-At"]
+
+    env = @req.class.env_for "/queued/#@addr.txt"
+    status, headers, body = @app.call(env)
+    assert_nothing_raised { Time.parse(headers["X-First-Peak-At"]) }
+    assert_nothing_raised { Time.parse(headers["X-Last-Peak-At"]) }
+    assert_equal before, headers["X-Last-Peak-At"], "should not change"
+
+    sleep 2
+    env = @req.class.env_for "/active/#@addr.txt"
+    status, headers, body = @app.call(env.dup)
+    assert_equal before, headers["X-Last-Peak-At"], headers.inspect
+
+    @ios << @srv.accept
+    assert_raises(Errno::EAGAIN) { @srv.accept_nonblock }
+    sleep 0.1
+    status, headers, body = @app.call(env.dup)
+    assert headers["X-Last-Peak-At"], headers.inspect
+    assert_nothing_raised { Time.parse(headers["X-Last-Peak-At"]) }
+    assert before != headers["X-Last-Peak-At"]
+
+    queued_before = headers["X-Last-Peak-At"]
+
+    sleep 2
+
+    env = @req.class.env_for "/queued/#@addr.txt"
+    status, headers, body = @app.call(env)
+    assert_equal "0", headers["X-Current"]
+    assert_nothing_raised { Time.parse(headers["X-Last-Peak-At"]) }
+    assert_equal queued_before, headers["X-Last-Peak-At"], "should not change"
+    assert_equal start, headers["X-First-Peak-At"]
+  end
 end if RUBY_PLATFORM =~ /linux/