--- /dev/null
+#!/usr/bin/perl -w
+use strict;
+
+use Test::More;
+
+BEGIN {
+ eval { require Catalyst::Plugin::Session::State::Cookie }
+ or plan skip_all =>
+ "Catalyst::Plugin::Session::State::Cookie is required for this test";
+
+ eval { require Catalyst::Plugin::Session::Store::File}
+ or plan skil_all =>
+ 'Catalyst::Plugin::Session::Store::File is required for this test';
+ eval { require Test::WWW::Mechanize::Catalyst }
+ or plan skip_all =>
+ 'Test::WWW::Mechanize::Catalyst is required for this test';
+
+ plan tests => '10';
+
+}
+
+use lib "t/lib";
+use Test::WWW::Mechanize::Catalyst 'FlashTestApp';
+
+my $ua = Test::WWW::Mechanize::Catalyst->new;
+
+# flash absent for initial request
+$ua->get_ok( "http://localhost/first") for $ua;
+$ua->content_contains( "flash is not set", "not set");
+
+# present for 1st req.
+$ua->get_ok( "http://localhost/second") for $ua;
+$ua->content_contains( "flash set first time", "set first");
+
+# should be the same 2nd req.
+$ua->get_ok( "http://localhost/third") for $ua;
+$ua->content_contains( "flash set second time", "set second");
+
+# and the third request, flash->{is_set} has the same value as 2nd.
+$ua->get_ok( "http://localhost/fourth") for $ua;
+$ua->content_contains( "flash set 3rd time, same val as prev.", "set third");
+
+
+# and should be absent again for the 4th req.
+$ua->get_ok( "http://localhost/fifth") for $ua;
+$ua->content_contains( "flash is not", "flash has gone");
+