[SCM] vim-addon-manager packaging branch, master, updated. v0.4.4-52-geef7258
Antonio Terceiro
terceiro at debian.org
Tue Jan 31 23:33:11 UTC 2012
The following commit has been merged in the master branch:
commit 82cfefc06688e7d777fdce592351908e7129c6cb
Author: Antonio Terceiro <terceiro at debian.org>
Date: Sun Jan 22 10:30:02 2012 -0200
Add basic tests for addon status
Also, refactored a lot of RSpec goodnes into a common module that is
shared across example groups
diff --git a/spec/data/addons/syntax/foo.vim b/spec/data/addons/ftplugin/foo.vim
similarity index 100%
copy from spec/data/addons/syntax/foo.vim
copy to spec/data/addons/ftplugin/foo.vim
diff --git a/spec/data/registry/foo.yaml b/spec/data/registry/foo.yaml
index 36de54f..c96d85d 100644
--- a/spec/data/registry/foo.yaml
+++ b/spec/data/registry/foo.yaml
@@ -2,3 +2,4 @@ addon: foo
description: "foo"
files:
- syntax/foo.vim
+ - ftplugin/foo.vim
diff --git a/spec/data/registry/missingfiles.yaml b/spec/data/registry/missingfiles.yaml
new file mode 100644
index 0000000..4e4d065
--- /dev/null
+++ b/spec/data/registry/missingfiles.yaml
@@ -0,0 +1,4 @@
+addon: missingfiles
+description: "missingfiles"
+files:
+ - syntax/missingfiles.vim
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 3d37e96..3d50836 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -2,11 +2,57 @@ require 'vim/addon_manager'
require 'vim/addon_manager/registry'
require 'tmpdir'
+begin
+ require 'pry'
+rescue LoadError
+end
+
FAKE_REGISTRY = File.join(File.dirname(__FILE__), 'data/registry')
FAKE_ADDONS = File.join(File.dirname(__FILE__), 'data/addons')
-RSpec.configure do |c|
- c.before { Vim::AddonManager.logger.quiet! }
- c.before { @tmpdir = Dir.mktmpdir }
- c.after { FileUtils.rm_rf(@tmpdir) }
+module VimAddonManagerSpecHelper
+
+ class Target
+ attr :path
+ def initialize(path)
+ @path = path
+ end
+ def has_file?(file)
+ File.exists?(File.join(path, file))
+ end
+ def rm(file)
+ FileUtils.rm(File.join(path, file))
+ end
+ end
+
+ def tmpdir
+ @tmpdir ||= Dir.mktmpdir
+ end
+
+ def target_dir
+ @target_dir ||= Target.new(tmpdir)
+ end
+
+ def registry
+ @registry ||= Vim::AddonManager::Registry.new(FAKE_REGISTRY, FAKE_ADDONS)
+ end
+
+ def addon(name)
+ registry[name]
+ end
+
+ def addons(*addon_names)
+ addon_names.map { |name| registry[name] }
+ end
+
+ def addon_manager
+ @addon_manager ||= Vim::AddonManager.new(FAKE_ADDONS, target_dir.path)
+ end
+
+end
+
+RSpec.configure do |config|
+ config.before { Vim::AddonManager.logger.quiet! }
+ config.after { FileUtils.rm_rf(tmpdir) }
+ config.include VimAddonManagerSpecHelper
end
diff --git a/spec/vim/addon_manager/addon_spec.rb b/spec/vim/addon_manager/addon_spec.rb
new file mode 100644
index 0000000..9af1745
--- /dev/null
+++ b/spec/vim/addon_manager/addon_spec.rb
@@ -0,0 +1,29 @@
+require 'spec_helper'
+describe Vim::AddonManager::Addon do
+
+ it 'should have a :unavailable status if it misses files' do
+ addon('missingfiles').status(target_dir.path).status.should == :unavailable
+ end
+
+ it 'should have a :broken status if files are removed in the target dir' do
+ addon_manager.install addons('foo')
+ target_dir.rm('syntax/foo.vim')
+ addon('foo').status(target_dir.path).status.should == :broken
+ end
+
+ it 'should have a :not_installed status by default' do
+ addon('foo').status(target_dir.path).status.should == :not_installed
+ end
+
+ it 'should have a :installed status after being installed' do
+ addon_manager.install addons('foo')
+ addon('foo').status(target_dir.path).status.should == :installed
+ end
+
+ it 'go back to :not_installed after being removed' do
+ addon_manager.install addons('foo')
+ addon_manager.remove addons('foo')
+ addon('foo').status(target_dir.path).status.should == :not_installed
+ end
+
+end
diff --git a/spec/vim/addon_manager_spec.rb b/spec/vim/addon_manager_spec.rb
index d3c7392..874ef6f 100644
--- a/spec/vim/addon_manager_spec.rb
+++ b/spec/vim/addon_manager_spec.rb
@@ -2,43 +2,21 @@ require 'spec_helper'
describe Vim::AddonManager do
- before do
- @target = Target.new(@tmpdir)
- @registry = Vim::AddonManager::Registry.new(FAKE_REGISTRY, FAKE_ADDONS)
- @manager = Vim::AddonManager.new(FAKE_ADDONS, @target.dir)
- end
-
it 'installs addons' do
- @manager.install addons('foo')
- @target.should have_file('syntax/foo.vim')
+ addon_manager.install addons('foo')
+ target_dir.should have_file('syntax/foo.vim')
end
it 'installs multiple addons at once' do
- @manager.install addons('foo', 'bar')
- @target.should have_file('syntax/foo.vim')
- @target.should have_file('syntax/bar.vim')
+ addon_manager.install addons('foo', 'bar')
+ target_dir.should have_file('syntax/foo.vim')
+ target_dir.should have_file('syntax/bar.vim')
end
it 'removes addons' do
- @manager.install addons('foo')
- @manager.remove addons('foo')
- @target.should_not have_file('syntax/foo.vim')
- end
-
-private
-
- def addons(*addon_names)
- addon_names.map { |name| @registry[name] }
- end
-
- class Target
- attr :dir
- def initialize(dir)
- @dir = dir
- end
- def has_file?(file)
- File.exists?(File.join(@dir, file))
- end
+ addon_manager.install addons('foo')
+ addon_manager.remove addons('foo')
+ target_dir.should_not have_file('syntax/foo.vim')
end
end
--
vim-addon-manager packaging
More information about the pkg-vim-maintainers
mailing list