[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