From 0fa1ba8b7b3debc4e5675672d07fd49b84bb10b3 Mon Sep 17 00:00:00 2001 From: raimon Date: Sun, 29 Nov 2015 00:05:47 +0900 Subject: [PATCH] Add tests with 'vim-flavor' --- .gitignore | 5 +++++ .travis.yml | 5 +++++ Gemfile | 3 +++ Gemfile.lock | 19 +++++++++++++++++ Rakefile | 11 ++++++++++ VimFlavor | 4 ++++ VimFlavor.lock | 1 + autoload/requirements.vim | 6 ++++-- t/test_ftdetect.vim | 43 +++++++++++++++++++++++++++++++++++++++ 9 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 .travis.yml create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 Rakefile create mode 100644 VimFlavor create mode 100644 VimFlavor.lock create mode 100644 t/test_ftdetect.vim diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..27cc115 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +## Environment normalisation: +/.bundle/ +/vendor/bundle +/lib/bundler/man/ +.vim-flavor diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..c75617f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,5 @@ +language: ruby +rvm: + - 2.2.3 +script: + rake ci diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..a87f4e1 --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' + +gem 'vim-flavor', '~> 1.1' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..4573d1a --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,19 @@ +GEM + remote: https://rubygems.org/ + specs: + blankslate (3.1.3) + parslet (1.7.1) + blankslate (>= 2.0, <= 4.0) + thor (0.19.1) + vim-flavor (1.1.5) + parslet (~> 1.0) + thor (~> 0.14) + +PLATFORMS + ruby + +DEPENDENCIES + vim-flavor (~> 1.1) + +BUNDLED WITH + 1.10.6 diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..63a3a36 --- /dev/null +++ b/Rakefile @@ -0,0 +1,11 @@ +#!/usr/bin/env rake + +task :ci => [:dump, :test] + +task :dump do + sh 'vim --version' +end + +task :test do + sh 'bundle exec vim-flavor test' +end diff --git a/VimFlavor b/VimFlavor new file mode 100644 index 0000000..226f354 --- /dev/null +++ b/VimFlavor @@ -0,0 +1,4 @@ +# Since flavorfile is parsed as a Ruby script, +# you can comment out arbitrary lines like this. + +# flavor '$foo_uri', '~> 1.0' diff --git a/VimFlavor.lock b/VimFlavor.lock new file mode 100644 index 0000000..04a9504 --- /dev/null +++ b/VimFlavor.lock @@ -0,0 +1 @@ +kana/vim-vspec (1.6.1) diff --git a/autoload/requirements.vim b/autoload/requirements.vim index d515034..32055a1 100644 --- a/autoload/requirements.vim +++ b/autoload/requirements.vim @@ -12,11 +12,11 @@ endif function! requirements#matched_filename(filename) - if a:filename =~# '\v.*require(ment)?s\.(txt|in)' + if a:filename =~# '\v.*require(ment)?s\.(txt|in)$' return 1 endif - if a:filename =~# '\v.require(ment)?s/.*\.(txt|in)' + if a:filename =~# '\vrequire(ment)?s/.*\.(txt|in)$' return 1 endif @@ -24,6 +24,8 @@ function! requirements#matched_filename(filename) \ && a:filename =~# g:requirements#detect_filename_pattern return 1 endif + + return 0 endfunction let &cpo = s:save_cpo diff --git a/t/test_ftdetect.vim b/t/test_ftdetect.vim new file mode 100644 index 0000000..629e731 --- /dev/null +++ b/t/test_ftdetect.vim @@ -0,0 +1,43 @@ +filetype plugin on +runtime! plugin/requirements.vim + +describe 'enable: requirements#matched_filename()' + it 'to enable file type detection: basic filename' + Expect requirements#matched_filename('requirements.txt') to_be_true + Expect requirements#matched_filename('requires.txt') to_be_true + end + + it 'to enable file type detection: pip-tools filename' + Expect requirements#matched_filename('requirements.in') to_be_true + Expect requirements#matched_filename('requires.in') to_be_true + end + + it 'to enable file type detection: directory structure' + Expect requirements#matched_filename('requirements/dev.txt') to_be_true + Expect requirements#matched_filename('requires/tests.in') to_be_true + end +end + +describe 'disable: requirements#matched_filename()' + it 'to enable file type detection: basic filename' + Expect requirements#matched_filename('requirements.text') to_be_false + end + + it 'to enable file type detection: pip-tools filename' + Expect requirements#matched_filename('requirements.ini') to_be_false + end + + it 'to enable file type detection: directory structure' + Expect requirements#matched_filename('require/dev.txt') to_be_false + end +end + +describe 'g:requirements#detect_filename_pattern' + it 'use g:requirements#detect_filename_pattern' + Expect requirements#matched_filename('freeze.txt') to_be_false + let g:requirements#detect_filename_pattern = 'freeze' + Expect requirements#matched_filename('freeze.txt') to_be_true + end +end + +" vim: et sw=4 ts=4 sts=4: