blob: b29bd950f22b9416e3ab326bdd5cc12cc5356021 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
$:.unshift "../lib"
require 'th_mauve'
require 'mauve/datamapper'
require 'mauve/server'
require 'mauve/configuration'
require 'mauve/configuration_builder'
require 'mauve/configuration_builders'
require 'iconv'
class TcMauveDatabasePeculiarities < Mauve::UnitTest
include Mauve
def setup
super
setup_database
@temp_db = "mauve_test.#{10.times.collect{ rand(36).to_s(36) }.join}"
end
def teardown
teardown_database
super
end
def test_encoding
#
# Don't test unless the DB URL has been set.
#
return unless @db_url
config=<<EOF
server {
database "#{@db_url}"
}
EOF
Configuration.current = ConfigurationBuilder.parse(config)
Server.instance.setup
x = Hash.new
x["en"] = "Please rush me my portable walrus polishing kit!"
x["fi"] = "Ole hyvä kiirehtiä minulle kannettavan mursu kiillotukseen pakki!"
x["jp"] = "私に私のポータブルセイウチの研磨キットを急いでください!"
%w(UTF-8 WINDOWS-1252 SHIFT-JIS).each do |enc|
x.each do |lang, str|
assert_nothing_raised("Failed to use iconv to convert to #{enc}") { str = Iconv.conv(enc+"//IGNORE", "utf8", str) }
alert = Alert.new(
:alert_id => "#{lang}:#{enc}",
:source => "test",
:subject => str
)
assert_nothing_raised("failed to insert #{enc}") { alert.save }
end
end
end
end
class TcMauveDatabasePostgresPeculiarities < TcMauveDatabasePeculiarities
def setup
super
system("createdb #{@temp_db} --encoding UTF8") || flunk("Failed to create #{@temp_db}")
# @pg_conn = PGconn.open(:dbname => @temp_db)
@db_url = "postgres:///#{@temp_db}"
end
def teardown
# @pg_conn.finish if @pg_conn.is_a?(PGconn) and @pg_conn.status == PGconn::CONNECTION_OK
super
(system("dropdb #{@temp_db}") || puts("Failed to drop #{@temp_db}")) if @temp_db
end
end
class TcMauveDatabaseSqlite3Peculiarities < TcMauveDatabasePeculiarities
def setup
super
# @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
|