spacevim/bundle/splitjoin.vim/spec/plugin/php_spec.rb
JIe 2bb7059579
Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
init
2024-08-21 14:17:26 +08:00

267 lines
4.2 KiB
Ruby

require 'spec_helper'
describe "php" do
let(:filename) { 'test.php' }
before(:each) do
vim.set(:shiftwidth, 2)
end
specify "arrays" do
set_file_contents '<?php $foo = array("one" => "two", "three" => "four"); ?>'
split
assert_file_contents <<~EOF
<?php $foo = array(
"one" => "two",
"three" => "four"
); ?>
EOF
join
assert_file_contents '<?php $foo = array("one" => "two", "three" => "four"); ?>'
end
specify "square-bracketed lists" do
set_file_contents '<?php $foo = [1, 2, 3]; ?>'
split
assert_file_contents <<~EOF
<?php $foo = [
1,
2,
3
]; ?>
EOF
join
assert_file_contents '<?php $foo = [1, 2, 3]; ?>'
end
specify "if-clauses" do
set_file_contents <<~EOF
<?php
if ($foo) { $a = "bar"; }
?>
EOF
vim.search('if')
split
assert_file_contents <<~EOF
<?php
if ($foo) {
$a = "bar";
}
?>
EOF
join
assert_file_contents <<~EOF
<?php
if ($foo) { $a = "bar"; }
?>
EOF
end
specify "else-clauses" do
set_file_contents <<~EOF
<?php
if ($foo) { $a = "bar"; }
else { $a = "baz"; }
?>
EOF
vim.search('else')
split
assert_file_contents <<~EOF
<?php
if ($foo) { $a = "bar"; }
else {
$a = "baz";
}
?>
EOF
join
assert_file_contents <<~EOF
<?php
if ($foo) { $a = "bar"; }
else { $a = "baz"; }
?>
EOF
end
specify "<?php markers" do
set_file_contents "<?php example(); ?>"
vim.search('example')
split
assert_file_contents <<~EOF
<?php
example();
?>
EOF
vim.search('php')
join
assert_file_contents "<?php example(); ?>"
end
specify "<?= markers" do
set_file_contents "<?= 'example'; ?>"
vim.search('example')
split
assert_file_contents <<~EOF
<?=
'example';
?>
EOF
vim.search('<?')
join
assert_file_contents "<?= 'example'; ?>"
end
specify "<? markers" do
set_file_contents "<? example(); ?>"
vim.search('example')
split
assert_file_contents <<~EOF
<?
example();
?>
EOF
vim.search('<?')
join
assert_file_contents "<? example(); ?>"
end
specify "method chain -> on function call" do
set_file_contents <<~EOF
<?php
function stuff()
{
$var = $foo->one($baz->nope())->two()->three();
}
EOF
vim.search('->two')
split
# indentation differs between versions, let's ignore it
remove_indentation
assert_file_contents <<~EOF
<?php
function stuff()
{
$var = $foo->one($baz->nope())
->two()->three();
}
EOF
vim.search('foo')
join
assert_file_contents <<~EOF
<?php
function stuff()
{
$var = $foo->one($baz->nope())->two()->three();
}
EOF
end
specify "method chain -> on property on beginning of line" do
set_file_contents <<~EOF
<?php
function stuff()
{
$one
->two->three;
}
EOF
vim.search('three')
split
assert_file_contents <<~EOF
<?php
function stuff()
{
$one
->two
->three;
}
EOF
vim.search('two')
join
assert_file_contents <<~EOF
<?php
function stuff()
{
$one
->two->three;
}
EOF
end
specify "method chain -> until end of chain" do
vim.command('let g:splitjoin_php_method_chain_full = 1')
set_file_contents <<~EOF
<?php
function stuff()
{
$var = $foo->one()->two($baz->nope())->three();
}
EOF
vim.search('->two')
split
# indentation differs between versions, let's ignore it
remove_indentation
assert_file_contents <<~EOF
<?php
function stuff()
{
$var = $foo->one()
->two($baz->nope())
->three();
}
EOF
vim.search('foo')
join
assert_file_contents <<~EOF
<?php
function stuff()
{
$var = $foo->one()->two($baz->nope())->three();
}
EOF
end
end