1
0
Fork 0
mirror of https://github.com/nishiki/manage-password.git synced 2024-10-27 10:43:20 +00:00
mpw/test/test_mpw.rb

297 lines
9.7 KiB
Ruby
Raw Normal View History

2014-12-29 14:45:25 +00:00
#!/usr/bin/ruby
2014-12-07 15:24:31 +00:00
2014-12-09 21:53:49 +00:00
require_relative '../lib/MPW'
require 'test/unit'
require 'yaml'
2014-12-28 17:18:45 +00:00
require 'csv'
2014-12-07 15:24:31 +00:00
class TestMPW < Test::Unit::TestCase
def setup
2014-12-30 07:57:45 +00:00
@fixture_file = 'files/fixtures.yml'
2014-12-28 17:48:37 +00:00
2014-12-09 21:53:49 +00:00
file_gpg = 'test.gpg'
key = ENV['MPW_TEST_KEY']
2014-12-30 08:22:41 +00:00
puts
2014-12-07 15:24:31 +00:00
if defined?(I18n.enforce_available_locales)
I18n.enforce_available_locales = false
end
2014-12-09 21:53:49 +00:00
File.delete(file_gpg) if File.exist?(file_gpg)
@mpw = MPW::MPW.new(file_gpg, key)
2014-12-28 17:48:37 +00:00
@fixtures = YAML.load_file(@fixture_file)
2014-12-07 15:24:31 +00:00
end
2014-12-29 14:36:06 +00:00
2014-12-30 08:22:41 +00:00
def test_01_import_yaml
2014-12-30 07:57:45 +00:00
import_file = 'files/test_import.yml'
2014-12-29 14:36:06 +00:00
assert(@mpw.import(import_file, :yaml))
assert_equal(2, @mpw.search.length)
result = @mpw.search[0]
assert_equal(@fixtures['add']['name'], result['name'])
assert_equal(@fixtures['add']['group'], result['group'])
assert_equal(@fixtures['add']['host'], result['host'])
assert_equal(@fixtures['add']['protocol'], result['protocol'])
assert_equal(@fixtures['add']['login'], result['login'])
assert_equal(@fixtures['add']['password'], result['password'])
assert_equal(@fixtures['add']['port'].to_i, result['port'])
assert_equal(@fixtures['add']['comment'], result['comment'])
end
2014-12-30 08:22:41 +00:00
def test_02_export_yaml
2014-12-29 14:36:06 +00:00
export_file = 'test_export.yml'
assert(@mpw.import(@fixture_file))
assert_equal(2, @mpw.search.length)
assert(@mpw.export(export_file, :yaml))
export = YAML::load_file(export_file)
assert_equal(2, export.length)
result = export.values[0]
assert_equal(@fixtures['add']['name'], result['name'])
assert_equal(@fixtures['add']['group'], result['group'])
assert_equal(@fixtures['add']['host'], result['host'])
assert_equal(@fixtures['add']['protocol'], result['protocol'])
assert_equal(@fixtures['add']['login'], result['login'])
assert_equal(@fixtures['add']['password'], result['password'])
assert_equal(@fixtures['add']['port'].to_i, result['port'])
assert_equal(@fixtures['add']['comment'], result['comment'])
File.unlink(export_file)
end
2014-12-30 08:22:41 +00:00
def test_03_import_csv
2014-12-30 07:57:45 +00:00
import_file = 'files/test_import.csv'
2014-12-29 14:36:06 +00:00
assert(@mpw.import(import_file, :csv))
assert_equal(2, @mpw.search.length)
import = CSV.parse(File.read(import_file), headers: true)
result = @mpw.search[0]
assert_equal(import[0]['name'], result['name'])
assert_equal(import[0]['group'], result['group'])
assert_equal(import[0]['host'], result['host'])
assert_equal(import[0]['protocol'], result['protocol'])
assert_equal(import[0]['login'], result['login'])
assert_equal(import[0]['password'], result['password'])
assert_equal(import[0]['port'].to_i, result['port'])
assert_equal(import[0]['comment'], result['comment'])
end
2014-12-30 08:22:41 +00:00
def test_04_export_csv
2014-12-29 14:36:06 +00:00
export_file = 'test_export.csv'
assert(@mpw.import(@fixture_file))
assert_equal(2, @mpw.search.length)
assert(@mpw.export(export_file, :csv))
export = CSV.parse(File.read(export_file), headers: true)
assert_equal(2, export.length)
result = export[0]
assert_equal(@fixtures['add']['name'], result['name'])
assert_equal(@fixtures['add']['group'], result['group'])
assert_equal(@fixtures['add']['host'], result['host'])
assert_equal(@fixtures['add']['protocol'], result['protocol'])
assert_equal(@fixtures['add']['login'], result['login'])
assert_equal(@fixtures['add']['password'], result['password'])
assert_equal(@fixtures['add']['port'], result['port'])
assert_equal(@fixtures['add']['comment'], result['comment'])
File.unlink(export_file)
end
2014-12-07 15:24:31 +00:00
2014-12-30 08:22:41 +00:00
def test_05_add
2014-12-09 21:53:49 +00:00
assert(@mpw.update(@fixtures['add']['name'],
@fixtures['add']['group'],
@fixtures['add']['host'],
@fixtures['add']['protocol'],
@fixtures['add']['login'],
@fixtures['add']['password'],
@fixtures['add']['port'],
@fixtures['add']['comment']))
2014-12-07 15:24:31 +00:00
assert_equal(1, @mpw.search.length)
result = @mpw.search[0]
2014-12-28 17:48:37 +00:00
assert_equal(@fixtures['add']['name'], result['name'])
assert_equal(@fixtures['add']['group'], result['group'])
assert_equal(@fixtures['add']['host'], result['host'])
assert_equal(@fixtures['add']['protocol'], result['protocol'])
assert_equal(@fixtures['add']['login'], result['login'])
assert_equal(@fixtures['add']['password'], result['password'])
assert_equal(@fixtures['add']['port'].to_i, result['port'])
assert_equal(@fixtures['add']['comment'], result['comment'])
2014-12-07 15:24:31 +00:00
2014-12-09 21:53:49 +00:00
assert(@mpw.update(@fixtures['add']['name'],
@fixtures['add']['group'],
@fixtures['add']['host'],
@fixtures['add']['protocol'],
@fixtures['add']['login'],
@fixtures['add']['password'],
@fixtures['add']['port'],
@fixtures['add']['comment']))
2014-12-07 15:24:31 +00:00
assert_equal(2, @mpw.search.length)
end
2014-12-30 08:22:41 +00:00
def test_06_add_empty_name
2014-12-09 21:53:49 +00:00
assert(!@mpw.update('',
2014-12-28 17:48:37 +00:00
@fixtures['add']['group'],
@fixtures['add']['host'],
@fixtures['add']['protocol'],
@fixtures['add']['login'],
@fixtures['add']['password'],
@fixtures['add']['port'],
@fixtures['add']['comment']))
2014-12-07 15:24:31 +00:00
assert_equal(0, @mpw.search.length)
end
2014-12-30 08:22:41 +00:00
def test_07_update_empty
2014-12-29 14:36:06 +00:00
assert(@mpw.import(@fixture_file, :yaml))
assert_equal(2, @mpw.search.length)
2014-12-09 21:53:49 +00:00
id = @mpw.search[0]['id']
2014-12-28 17:48:37 +00:00
assert(@mpw.update('','', '','','','','', '', id))
result = @mpw.search_by_id(id)
assert_equal(@fixtures['add']['name'], result['name'])
assert_equal(@fixtures['add']['group'], result['group'])
assert_equal(@fixtures['add']['host'], result['host'])
assert_equal(@fixtures['add']['protocol'], result['protocol'])
assert_equal(@fixtures['add']['login'], result['login'])
assert_equal(@fixtures['add']['password'], result['password'])
assert_equal(@fixtures['add']['port'].to_i, result['port'])
assert_equal(@fixtures['add']['comment'], result['comment'])
2014-12-29 14:36:06 +00:00
end
2014-12-28 17:48:37 +00:00
2014-12-30 08:22:41 +00:00
def test_08_update
2014-12-29 14:36:06 +00:00
assert(@mpw.import(@fixture_file, :yaml))
assert_equal(2, @mpw.search.length)
id = @mpw.search[0]['id']
2014-12-28 17:48:37 +00:00
2014-12-09 21:53:49 +00:00
assert(@mpw.update(@fixtures['update']['name'],
@fixtures['update']['group'],
@fixtures['update']['host'],
@fixtures['update']['protocol'],
@fixtures['update']['login'],
@fixtures['update']['password'],
@fixtures['update']['port'],
@fixtures['update']['comment'],
id))
2014-12-29 14:36:06 +00:00
assert_equal(2, @mpw.search.length)
2014-12-07 15:24:31 +00:00
result = @mpw.search_by_id(id)
2014-12-28 17:48:37 +00:00
assert_equal(@fixtures['update']['name'], result['name'])
assert_equal(@fixtures['update']['group'], result['group'])
assert_equal(@fixtures['update']['host'], result['host'])
assert_equal(@fixtures['update']['protocol'], result['protocol'])
assert_equal(@fixtures['update']['login'], result['login'])
assert_equal(@fixtures['update']['password'], result['password'])
assert_equal(@fixtures['update']['port'].to_i, result['port'])
assert_equal(@fixtures['update']['comment'], result['comment'])
2014-12-07 15:24:31 +00:00
end
2014-12-29 14:45:25 +00:00
2014-12-30 08:22:41 +00:00
def test_09_remove
2014-12-29 14:45:25 +00:00
assert(@mpw.import(@fixture_file, :yaml))
assert_equal(2, @mpw.search.length)
id = @mpw.search[0]['id']
assert(@mpw.remove(id))
assert_equal(1, @mpw.search.length)
end
2014-12-30 08:22:41 +00:00
def test_10_remove_noexistent
2014-12-29 14:45:25 +00:00
assert(@mpw.import(@fixture_file, :yaml))
assert_equal(2, @mpw.search.length)
assert(!@mpw.remove('TEST_NOEXISTENT_ID'))
assert_equal(2, @mpw.search.length)
end
2014-12-30 08:22:41 +00:00
def test_11_encrypt_empty_file
assert(@mpw.encrypt)
end
def test_12_encrypt
assert(@mpw.import(@fixture_file, :yaml))
assert_equal(2, @mpw.search.length)
assert(@mpw.encrypt)
end
def test_13_decrypt_empty_file
assert(@mpw.decrypt)
assert_equal(0, @mpw.search.length)
end
def test_14_decrypt
assert(@mpw.import(@fixture_file, :yaml))
assert_equal(2, @mpw.search.length)
assert(@mpw.encrypt)
assert(@mpw.decrypt)
assert_equal(2, @mpw.search.length)
result = @mpw.search[0]
assert_equal(@fixtures['add']['name'], result['name'])
assert_equal(@fixtures['add']['group'], result['group'])
assert_equal(@fixtures['add']['host'], result['host'])
assert_equal(@fixtures['add']['protocol'], result['protocol'])
assert_equal(@fixtures['add']['login'], result['login'])
assert_equal(@fixtures['add']['password'], result['password'])
assert_equal(@fixtures['add']['port'].to_i, result['port'])
assert_equal(@fixtures['add']['comment'], result['comment'])
end
2014-12-30 08:55:31 +00:00
def test_15_sync_local_empty
import_file = 'files/test_import.yml'
data = []
YAML.load_file(import_file).each_value { |v| data.push(v) }
@mpw.sync(data, 0)
result = @mpw.search[0]
assert_equal(@fixtures['add']['name'], result['name'])
assert_equal(@fixtures['add']['group'], result['group'])
assert_equal(@fixtures['add']['host'], result['host'])
assert_equal(@fixtures['add']['protocol'], result['protocol'])
assert_equal(@fixtures['add']['login'], result['login'])
assert_equal(@fixtures['add']['password'], result['password'])
assert_equal(@fixtures['add']['port'].to_i, result['port'])
assert_equal(@fixtures['add']['comment'], result['comment'])
assert_equal(2, @mpw.search.length)
end
def test_16_sync_remote_outdated_and_local_empty
import_file = 'files/test_import.yml'
data = []
YAML.load_file(import_file).each_value { |v| data.push(v) }
2014-12-31 10:30:30 +00:00
assert(@mpw.sync(data, Time.now.to_i))
2014-12-30 08:55:31 +00:00
assert_equal(0, @mpw.search.length)
end
2014-12-31 10:30:30 +00:00
def test_17_sync_empty_data
assert(@mpw.import(@fixture_file, :yaml))
assert_equal(2, @mpw.search.length)
assert(@mpw.sync([], 0))
assert_equal(2, @mpw.search.length)
end
2014-12-07 15:24:31 +00:00
end