test/test_database_initialization.rb in sqlite3-0.0.2 vs test/test_database_initialization.rb in sqlite3-0.0.3

- old
+ new

@@ -21,6 +21,31 @@ def test_database_closing @db.close assert @db.closed? end + + def test_encoding_conversion_from_utf_16_to_utf_8 + expected_string = "test" + db_filename = "test_database_encoding.db" + File.delete(db_filename) if File.exists?(db_filename) + db = SQLite3::Database.new(db_filename, :encoding => "utf-16le") + db.execute("CREATE TABLE t1(t TEXT)") + db.execute("INSERT INTO t1 VALUES (?)", expected_string.encode(Encoding::UTF_8)) + db.execute("INSERT INTO t1 VALUES (?)", expected_string.encode(Encoding::UTF_16LE)) + rows = db.execute("SELECT * FROM t1") + assert_equal 2, rows.size + assert_equal expected_string.encode(Encoding::UTF_16LE), rows[0][0] + assert_equal Encoding::UTF_16LE, rows[0][0].encoding + assert_equal expected_string.encode(Encoding::UTF_16LE), rows[1][0] + assert_equal Encoding::UTF_16LE, rows[1][0].encoding + db.close + db = SQLite3::Database.new(db_filename) + rows = db.execute("SELECT * FROM t1") + assert_equal 2, rows.size + assert_equal expected_string, rows[0][0] + assert_equal Encoding::UTF_8, rows[0][0].encoding + assert_equal expected_string, rows[1][0] + assert_equal Encoding::UTF_8, rows[1][0].encoding + File.delete(db_filename) if File.exists?(db_filename) + end end