aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2016-04-11 01:59:32 -0400
committerJustin M. Keyes <justinkz@gmail.com>2016-04-15 02:23:27 -0400
commit523ff9c55cfd4e82877e110b24eb049f405703d5 (patch)
treee87c0964a38b8aea3bf78cb42cb7a6297f592fc0
parent54188cdddefca38ff7a9fe201bc361c923cde331 (diff)
downloadrneovim-523ff9c55cfd4e82877e110b24eb049f405703d5.tar.gz
rneovim-523ff9c55cfd4e82877e110b24eb049f405703d5.tar.bz2
rneovim-523ff9c55cfd4e82877e110b24eb049f405703d5.zip
test: defaults_spec.lua
-rw-r--r--runtime/doc/vim_diff.txt4
-rw-r--r--test/functional/options/defaults_spec.lua85
2 files changed, 86 insertions, 3 deletions
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index 17e16911bc..17ee5975dd 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -31,9 +31,7 @@ these differences.
2. Defaults *nvim-defaults*
- Syntax highlighting is enabled by default
-- Filetype-related plugins and scripts are enabled by default
- Note: these defaults can be disabled with the "-u NONE" command line
- argument. |-u|
+- ":filetype plugin indent on" is enabled by default
- 'autoindent' is set by default
- 'autoread' is set by default
diff --git a/test/functional/options/defaults_spec.lua b/test/functional/options/defaults_spec.lua
new file mode 100644
index 0000000000..7f0892ee3a
--- /dev/null
+++ b/test/functional/options/defaults_spec.lua
@@ -0,0 +1,85 @@
+local helpers = require('test.functional.helpers')
+local Screen = require('test.functional.ui.screen')
+local clear, feed = helpers.clear, helpers.feed
+local eval, eq, neq = helpers.eval, helpers.eq, helpers.neq
+local execute, source, expect = helpers.execute, helpers.source, helpers.expect
+
+local function init_session(...)
+ local args = { helpers.nvim_prog, '-i', 'NONE', '--embed',
+ '--cmd', 'set shortmess+=I background=light noswapfile noautoindent',
+ '--cmd', 'set laststatus=1 undodir=. directory=. viewdir=. backupdir=.'
+ }
+ for _, v in ipairs({...}) do
+ table.insert(args, v)
+ end
+ helpers.set_session(helpers.spawn(args))
+end
+
+describe('startup defaults', function()
+ before_each(function()
+ clear()
+ end)
+
+ describe(':filetype', function()
+ local function expect_filetype(expected)
+ local screen = Screen.new(48, 4)
+ screen:attach()
+ execute('filetype')
+ screen:expect([[
+ ^ |
+ ~ |
+ ~ |
+ ]]..expected
+ )
+ end
+
+ it('enabled by `-u NORC`', function()
+ init_session('-u', 'NORC')
+ expect_filetype(
+ 'filetype detection:ON plugin:ON indent:ON |')
+ end)
+
+ it('disabled by `-u NONE`', function()
+ init_session('-u', 'NONE')
+ expect_filetype(
+ 'filetype detection:OFF plugin:OFF indent:OFF |')
+ end)
+
+ it('overridden by early `filetype on`', function()
+ init_session('-u', 'NORC', '--cmd', 'filetype on')
+ expect_filetype(
+ 'filetype detection:ON plugin:OFF indent:OFF |')
+ end)
+
+ it('overridden by early `filetype plugin on`', function()
+ init_session('-u', 'NORC', '--cmd', 'filetype plugin on')
+ expect_filetype(
+ 'filetype detection:ON plugin:ON indent:OFF |')
+ end)
+
+ it('overridden by early `filetype indent on`', function()
+ init_session('-u', 'NORC', '--cmd', 'filetype indent on')
+ expect_filetype(
+ 'filetype detection:ON plugin:OFF indent:ON |')
+ end)
+ end)
+
+ describe('syntax', function()
+ it('enabled by `-u NORC`', function()
+ init_session('-u', 'NORC')
+ eq(1, eval('g:syntax_on'))
+ end)
+
+ it('disabled by `-u NONE`', function()
+ init_session('-u', 'NONE')
+ eq(0, eval('exists("g:syntax_on")'))
+ end)
+
+ it('overridden by early `syntax off`', function()
+ init_session('-u', 'NORC', '--cmd', 'syntax off')
+ eq(0, eval('exists("g:syntax_on")'))
+ end)
+ end)
+end)
+
+