diff options
author | Patrick J Cherry <patrick@bytemark.co.uk> | 2012-05-01 14:03:52 +0100 |
---|---|---|
committer | Patrick J Cherry <patrick@bytemark.co.uk> | 2012-05-01 14:03:52 +0100 |
commit | e55096b063720e0be4ca8d774095d2f6dfb7c086 (patch) | |
tree | 1b3b7c743bf1963bfe7cf11270ad719072a19200 /test | |
parent | bb5ac2581ce9aa6a1a03c97986e91ad89f67fe3f (diff) | |
parent | fafac666b1d9f1b73fe4330af6b3c14d57ded2cb (diff) |
merge
Diffstat (limited to 'test')
-rw-r--r-- | test/tc_mauve_database_peculiarities.rb | 9 | ||||
-rw-r--r-- | test/tc_mauve_sender.rb | 79 | ||||
-rw-r--r-- | test/th_mauve.rb | 9 |
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 |