aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPatrick J Cherry <patrick@bytemark.co.uk>2012-05-01 14:03:52 +0100
committerPatrick J Cherry <patrick@bytemark.co.uk>2012-05-01 14:03:52 +0100
commite55096b063720e0be4ca8d774095d2f6dfb7c086 (patch)
tree1b3b7c743bf1963bfe7cf11270ad719072a19200 /test
parentbb5ac2581ce9aa6a1a03c97986e91ad89f67fe3f (diff)
parentfafac666b1d9f1b73fe4330af6b3c14d57ded2cb (diff)
merge
Diffstat (limited to 'test')
-rw-r--r--test/tc_mauve_database_peculiarities.rb9
-rw-r--r--test/tc_mauve_sender.rb79
-rw-r--r--test/th_mauve.rb9
3 files changed, 92 insertions, 5 deletions
diff --git a/test/tc_mauve_database_peculiarities.rb b/test/tc_mauve_database_peculiarities.rb
index 9eb612e..b29bd95 100644
--- a/test/tc_mauve_database_peculiarities.rb
+++ b/test/tc_mauve_database_peculiarities.rb
@@ -81,5 +81,14 @@ class TcMauveDatabaseSqlite3Peculiarities < TcMauveDatabasePeculiarities
# @pg_conn = PGconn.open(:dbname => @temp_db)
@db_url = "sqlite3::memory:"
end
+
+ #
+ # This just makes sure our mixin has been added to the SqliteAdapter.
+ #
+ def test_has_mixin
+ assert DataMapper::Adapters::SqliteAdapter.private_instance_methods.include?("with_connection_old")
+ assert DataMapper::Adapters::SqliteAdapter.public_instance_methods.include?("synchronize")
+ end
+
end
diff --git a/test/tc_mauve_sender.rb b/test/tc_mauve_sender.rb
new file mode 100644
index 0000000..7db06c1
--- /dev/null
+++ b/test/tc_mauve_sender.rb
@@ -0,0 +1,79 @@
+$:.unshift "../lib"
+
+require 'th_mauve_resolv'
+require 'test/unit'
+require 'pp'
+require 'timecop'
+require 'mauve/sender'
+require 'locale'
+require 'iconv'
+
+
+class TcMauveSender < Test::Unit::TestCase
+ include Mauve
+
+ def setup
+ Timecop.freeze(Time.local(2011,8,1,0,0,0,0))
+ end
+
+ def teardown
+ Timecop.return
+ end
+
+ def test_sanitise
+ Locale.clear
+ Locale.current = "en_GB.ISO-8859-1"
+
+ #
+ # Set up a couple of crazy sources.
+ #
+ utf8_source = "Å ðîßtáñt plàñët"
+ iso88591_source = Iconv.conv(Locale.current.charset, "UTF-8", utf8_source)
+
+ #
+ # Make sure our two sources are distinct
+ #
+ assert(iso88591_source != utf8_source)
+
+ sender = Sender.new("test-1.example.com")
+ update = Mauve::Proto::AlertUpdate.new
+ update.source = iso88591_source
+ update.replace = false
+
+ alert = Mauve::Proto::Alert.new
+ update.alert << alert
+
+ alert_cleared = Mauve::Proto::Alert.new
+ update.alert << alert_cleared
+ alert_cleared.clear_time = Time.now.to_i
+
+ #
+ # Make sure the update has the correct source
+ #
+ assert_equal(iso88591_source, update.source)
+
+ #
+ # Sanitize
+ #
+ update = sender.sanitize(update)
+
+ #
+ # Now make sure the sanitization has changed it back to UTF-8
+ #
+ assert_equal(utf8_source, update.source)
+
+ #
+ # Now make sure the transmission time + id have been set
+ #
+ assert_equal(Time.now.to_i, update.transmission_time)
+ assert_kind_of(Integer, update.transmission_id)
+
+ #
+ # Make sure that the alert has its raise time set by default
+ #
+ assert_equal(Time.now.to_i, alert.raise_time)
+ assert_equal(0, alert_cleared.raise_time)
+ end
+
+
+end
diff --git a/test/th_mauve.rb b/test/th_mauve.rb
index 99eaaed..4ec8dc5 100644
--- a/test/th_mauve.rb
+++ b/test/th_mauve.rb
@@ -1,5 +1,4 @@
require 'test/unit'
-require 'mauve/datamapper'
require 'timecop'
require 'log4r'
require 'pp'
@@ -94,12 +93,12 @@ module Mauve
end
def setup_database
- DataMapper::Model.raise_on_save_failure = true
+ DataMapper::Model.raise_on_save_failure = true if defined?(DataMapper::Model)
end
def teardown_database
- DataObjects::Pooling.pools.each{|pool| pool.dispose}
- end
+ DataObjects::Pooling.pools.each{|pool| pool.dispose} if defined?(DataObjects::Pooling)
+ end
def setup_time
Timecop.freeze(Time.local(2011,8,1,0,0,0,0))
@@ -110,7 +109,7 @@ module Mauve
end
def reset_mauve_configuration
- Mauve::Configuration.current = Mauve::Configuration.new
+ Mauve::Configuration.current = Mauve::Configuration.new if defined?(Mauve::Configuration)
end
def reset_all_singletons