# Check if the given mail directory of the form "example.com/user"
# exists.
cfg = configuration()
- mail_root = cfg.send('mail_root')
- return File.directory?("#{mail_root}/#{dir}")
+ return File.directory?("#{cfg.dovecot_mail_root()}/#{dir}")
end
def connect_superuser()
db_user = 'postgres'
db_pass = nil
- connection = PGconn.connect(db_host,
- db_port,
- db_opts,
- db_tty,
- db_name,
- db_user,
- db_pass)
+ connection = PGconn.connect(db_host, db_port, db_opts, db_tty,
+ db_name, db_user, db_pass)
return connection
end
#
# 1. agendav_test
#
- # +----------------------------+
- # | prefs |
- # +------------------+---------+
- # | username | options |
- # +------------------+---------+
- # | adam@example.net | herp |
- # +------------------+---------+
+ # +------------------------------+
+ # | prefs |
+ # +--------------------+---------+
+ # | username | options |
+ # +--------------------+---------+
+ # | adam@example.net | herp |
+ # +--------------------+---------+
+ # | booger@example.com | herp |
+ # +------------------ +---------+
#
#
- # +------------------------------------------------------+
- # | shared |
- # +-----+------------------+----------+------------------+
- # | sid | user_from | calendar | user_which |
- # +-----+------------------+----------+------------------+
- # | 1 | adam@example.net | derp | beth@example.net |
- # +-----+------------------+----------+------------------+
+ # +---------------------------------------------------------+
+ # | shared |
+ # +-----+--------------------+----------+-------------------+
+ # | sid | user_from | calendar | user_which |
+ # +-----+--------------------+----------+-------------------+
+ # | 1 | adam@example.net | derp | beth@example.net |
+ # +-----+--------------------+----------+-------------------+
+ # | 2 | booger@example.com | derp | carol@example.net |
+ # +-----+--------------------+----------+-------------------+
#
#
# 2. davical_test
#
- # +-------------------------------------------------------+
- # | usr |
- # +---------+--------+----------------+-------------------+
- # | user_no | active | joined | username |
- # +---------+--------+----------------+-------------------+
- # | 17 | t | 2014-01-04 ... | alice@example.com |
- # +---------+--------+----------------+-------------------+
+ # +--------------------------------------------------------+
+ # | usr |
+ # +---------+--------+----------------+--------------------+
+ # | user_no | active | joined | username |
+ # +---------+--------+----------------+--------------------+
+ # | 17 | t | 2014-01-04 ... | alice@example.com |
+ # +---------+--------+----------------+--------------------+
+ # | 18 | t | 2014-01-04 ... | booger@example.com |
+ # +---------+--------+----------------+--------------------+
#
#
# +-----------------------------------------+
# +---------+--------------+----------------+
# | 17 | dumb setting | its dumb value |
# +---------+--------------+----------------+
+ # | 18 | dumb setting | its dumb value |
+ # +---------+--------------+----------------+
#
#
# 3. postfixadmin_test
# 4. roundcube_test
#
#
- # +---------+-------------------+
- # | user_id | username |
- # +---------+-------------------+
- # | 1 | alice@example.com |
- # +---------+-------------------+
- # | 2 | adam@example.net |
- # +---------+-------------------+
+ # +---------+--------------------+
+ # | user_id | username |
+ # +---------+--------------------+
+ # | 1 | alice@example.com |
+ # +---------+--------------------+
+ # | 2 | booger@example.com |
+ # +---------+--------------------+
+ # | 3 | adam@example.net |
+ # +---------+--------------------+
+
+ # First make sure we get rid of everything so we don't get random
+ # failures from databases and directories that already exist.
+ teardown()
cfg = configuration()
# First create the "mail directories".
- mail_root = cfg.send('mail_root')
- FileUtils.mkdir_p("#{mail_root}/example.com/alice")
- FileUtils.mkdir_p("#{mail_root}/example.com/booger")
- FileUtils.mkdir_p("#{mail_root}/example.com/jeremy")
- FileUtils.mkdir_p("#{mail_root}/example.net/adam")
+ FileUtils.mkdir_p("#{cfg.dovecot_mail_root()}/example.com/alice")
+ FileUtils.mkdir_p("#{cfg.dovecot_mail_root()}/example.com/booger")
+ FileUtils.mkdir_p("#{cfg.dovecot_mail_root()}/example.com/jeremy")
+ FileUtils.mkdir_p("#{cfg.dovecot_mail_root()}/example.net/adam")
# Now the databases and their content.
connection = connect_superuser()
plugin_dbuser = cfg.send("#{plugin}_dbuser")
plugin_dbpass = cfg.send("#{plugin}_dbpass")
- plugin_conn = PGconn.connect(plugin_dbhost,
- plugin_dbport,
- plugin_dbopts,
- plugin_dbtty,
- plugin_dbname,
- plugin_dbuser,
+ plugin_conn = PGconn.connect(plugin_dbhost, plugin_dbport, plugin_dbopts,
+ plugin_dbtty, plugin_dbname, plugin_dbuser,
plugin_dbpass)
sql = File.open("test/sql/#{plugin}.sql").read()
cfg = configuration()
connection = connect_superuser()
+ # Don't emit notices about missing tables. Why this happens when I
+ # explicitly say IF EXISTS is beyond me.
+ connection.set_notice_processor{}
+
cfg.plugins.each do |plugin|
plugin_dbname = cfg.send("#{plugin}_dbname")
next if plugin_dbname.nil? # Skip the dovecot plugin
- query = "DROP DATABASE #{plugin_dbname};"
+ query = "DROP DATABASE IF EXISTS #{plugin_dbname};"
connection.query(query)
end
connection.close()
# Get rid of the maildirs.
- mail_root = cfg.send('mail_root')
- FileUtils.rm_r(mail_root)
+ FileUtils.rm_rf(cfg.dovecot_mail_root())
end
end