require 'spec_helper' describe "php" do let(:filename) { 'test.php' } before(:each) do vim.set(:shiftwidth, 2) end specify "arrays" do set_file_contents ' "two", "three" => "four"); ?>' split assert_file_contents <<~EOF "two", "three" => "four" ); ?> EOF join assert_file_contents ' "two", "three" => "four"); ?>' end specify "square-bracketed lists" do set_file_contents '' split assert_file_contents <<~EOF EOF join assert_file_contents '' end specify "if-clauses" do set_file_contents <<~EOF EOF vim.search('if') split assert_file_contents <<~EOF EOF join assert_file_contents <<~EOF EOF end specify "else-clauses" do set_file_contents <<~EOF EOF vim.search('else') split assert_file_contents <<~EOF EOF join assert_file_contents <<~EOF EOF end specify "" vim.search('example') split assert_file_contents <<~EOF EOF vim.search('php') join assert_file_contents "" end specify "" vim.search('example') split assert_file_contents <<~EOF EOF vim.search('" end specify "" vim.search('example') split assert_file_contents <<~EOF EOF vim.search('" end specify "method chain -> on function call" do set_file_contents <<~EOF one($baz->nope())->two()->three(); } EOF vim.search('->two') split # indentation differs between versions, let's ignore it remove_indentation assert_file_contents <<~EOF one($baz->nope()) ->two()->three(); } EOF vim.search('foo') join assert_file_contents <<~EOF one($baz->nope())->two()->three(); } EOF end specify "method chain -> on property on beginning of line" do set_file_contents <<~EOF two->three; } EOF vim.search('three') split assert_file_contents <<~EOF two ->three; } EOF vim.search('two') join assert_file_contents <<~EOF 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 one()->two($baz->nope())->three(); } EOF vim.search('->two') split # indentation differs between versions, let's ignore it remove_indentation assert_file_contents <<~EOF one() ->two($baz->nope()) ->three(); } EOF vim.search('foo') join assert_file_contents <<~EOF one()->two($baz->nope())->three(); } EOF end end