P->addMode('file',new File()); $this->P->parse('Foo testing Bar'); $calls = [ ['document_start',[]], ['p_open',[]], ['cdata',["\n".'Foo ']], ['p_close',[]], ['file',['testing',null,null]], ['p_open',[]], ['cdata',[' Bar']], ['p_close',[]], ['document_end',[]], ]; $this->assertCalls($calls, $this->H->calls); } function testCode() { $this->P->addMode('code',new Code()); $this->P->parse('Foo testing Bar'); $calls = [ ['document_start',[]], ['p_open',[]], ['cdata',["\n".'Foo ']], ['p_close',[]], ['code',['testing', null, null]], ['p_open',[]], ['cdata',[' Bar']], ['p_close',[]], ['document_end',[]], ]; $this->assertCalls($calls, $this->H->calls); } function testCodeWhitespace() { $this->P->addMode('code',new Code()); $this->P->parse("Foo testing Bar"); $calls = [ ['document_start',[]], ['p_open',[]], ['cdata',["\n".'Foo ']], ['p_close',[]], ['code',['testing', null, null]], ['p_open',[]], ['cdata',[' Bar']], ['p_close',[]], ['document_end',[]], ]; $this->assertCalls($calls, $this->H->calls); } function testCodeLang() { $this->P->addMode('code',new Code()); $this->P->parse("Foo testing Bar"); $calls = [ ['document_start',[]], ['p_open',[]], ['cdata',["\n".'Foo ']], ['p_close',[]], ['code',['testing', 'php', null]], ['p_open',[]], ['cdata',[' Bar']], ['p_close',[]], ['document_end',[]], ]; $this->assertCalls($calls, $this->H->calls); } function testPreformatted() { $this->P->addMode('preformatted',new Preformatted()); $this->P->parse("F oo\n x \n y \nBar\n"); $calls = [ ['document_start',[]], ['p_open',[]], ['cdata',["\nF oo"]], ['p_close',[]], ['preformatted',["x \n y "]], ['p_open',[]], ['cdata',['Bar']], ['p_close',[]], ['document_end',[]], ]; $this->assertCalls($calls, $this->H->calls); } function testPreformattedWinEOL() { $this->P->addMode('preformatted',new Preformatted()); $this->P->parse("F oo\r\n x \r\n y \r\nBar\r\n"); $calls = [ ['document_start',[]], ['p_open',[]], ['cdata',["\nF oo"]], ['p_close',[]], ['preformatted',["x \n y "]], ['p_open',[]], ['cdata',['Bar']], ['p_close',[]], ['document_end',[]], ]; $this->assertCalls($calls, $this->H->calls); } function testPreformattedTab() { $this->P->addMode('preformatted',new Preformatted()); $this->P->parse("F oo\n\tx\t\n\t\ty\t\nBar\n"); $calls = [ ['document_start',[]], ['p_open',[]], ['cdata',["\nF oo"]], ['p_close',[]], ['preformatted',["x\t\n\ty\t"]], ['p_open',[]], ['cdata',["Bar"]], ['p_close',[]], ['document_end',[]], ]; $this->assertCalls($calls, $this->H->calls); } function testPreformattedTabWinEOL() { $this->P->addMode('preformatted',new Preformatted()); $this->P->parse("F oo\r\n\tx\t\r\n\t\ty\t\r\nBar\r\n"); $calls = [ ['document_start',[]], ['p_open',[]], ['cdata',["\nF oo"]], ['p_close',[]], ['preformatted',["x\t\n\ty\t"]], ['p_open',[]], ['cdata',["Bar"]], ['p_close',[]], ['document_end',[]], ]; $this->assertCalls($calls, $this->H->calls); } function testPreformattedList() { $this->P->addMode('preformatted',new Preformatted()); $this->P->addMode('listblock',new Listblock()); $this->P->parse(" - x \n * y \nF oo\n x \n y \n -X\n *Y\nBar\n"); $calls = [ ['document_start',[]], ['listo_open',[]], ['listitem_open',[1]], ['listcontent_open',[]], ['cdata',[" x "]], ['listcontent_close',[]], ['listitem_close',[]], ['listo_close',[]], ['listu_open',[]], ['listitem_open',[1]], ['listcontent_open',[]], ['cdata',[" y "]], ['listcontent_close',[]], ['listitem_close',[]], ['listu_close',[]], ['p_open',[]], ['cdata',["F oo"]], ['p_close',[]], ['preformatted',["x \n y \n-X\n*Y"]], ['p_open',[]], ['cdata',["Bar"]], ['p_close',[]], ['document_end',[]], ]; $this->assertCalls($calls, $this->H->calls); } function testPreformattedPlusHeaderAndEol() { // Note that EOL must come after preformatted! $this->P->addMode('preformatted',new Preformatted()); $this->P->addMode('header',new Header()); $this->P->addMode('eol',new Eol()); $this->P->parse("F oo\n ==Test==\n y \nBar\n"); $calls = [ ['document_start',[]], ['p_open',[]], ['cdata',["F oo"]], ['p_close',[]], ['preformatted',["==Test==\n y "]], ['p_open',[]], ['cdata',['Bar']], ['p_close',[]], ['document_end',[]], ]; $this->assertCalls($calls, $this->H->calls); } }