assertStringContainsString( '~', $result ); $this->assertStringContainsString( 'mover', $result ); } public function testAccentArgPassing() { $node = new Fun1( '\\widetilde', ( new Literal( 'a' ) ) ); $result = BaseParsing::accent( $node, [ 'k' => 'v' ], null, 'widetilde', '007E' ); $this->assertStringContainsString( 'assertStringContainsString( 'a', $result ); } public function testBoldSymbol() { $node = new Fun1( '\\boldsymbol', ( new Literal( 'a' ) ) ); $result = BaseParsing::boldsymbol( $node, [], null, 'boldsymbol' ); $this->assertStringContainsString( 'mathvariant="bold-italic"', $result ); } public function testCancel() { $node = new Fun1( '\\cancel', ( new Literal( 'a' ) ) ); $result = BaseParsing::cancel( $node, [], null, 'cancel', 'something' ); $this->assertStringContainsString( 'a', $result ); } public function testUnderOver() { $node = new Fun1( '\\overline', ( new Literal( 'a' ) ) ); $result = BaseParsing::underover( $node, [], null, 'oXXX', '00AF' ); $this->assertStringStartsWith( 'assertStringContainsString( 'mover', $result ); } public function testUnderOverUnder() { $node = new Fun1( '\\overline', ( new Literal( 'a' ) ) ); $result = BaseParsing::underover( $node, [], null, 'uXXX', '00AF' ); $this->assertStringContainsString( 'munder', $result ); } public function testUnderOverDqUnder() { $node = new DQ( ( new Literal( 'a' ) ), ( new Literal( 'b' ) ) ); $result = BaseParsing::underover( $node, [], null, 'uXXX', '00AF' ); $this->assertStringContainsString( 'munder', $result ); $this->assertStringContainsString( 'mrow', $result ); } public function testUnderArgPassing() { $node = new Fun1( '\\overline', ( new Literal( 'a' ) ) ); $result = BaseParsing::underover( $node, [ 'k' => 'v' ], null, 'oXXX', '00AF' ); $this->assertStringContainsString( ' '""' ], null, 'oXXX', '00AF' ); $this->assertStringContainsString( 'k=""<script>alert("problem")', $result ); } public function testAlignAt() { $matrix = new Matrix( 'alignat', new TexArray( new TexArray( new Literal( '\\sin' ) ) ) ); $result = BaseParsing::alignAt( $matrix, [], null, 'alignat', '002A' ); $this->assertStringContainsString( 'mtable', $result ); } public function testHLineTop() { $matrix = new Matrix( 'matrix', new TexArray( new TexArray( new TexArray( new Literal( '\\hline ' ), new Literal( 'a' ) ) ) ) ); $result = BaseParsing::matrix( $matrix, [], null, 'matrix', '002A' ); $this->assertStringContainsString( 'top', $result ); } public function testHLineBottom() { $matrix = new Matrix( 'matrix', new TexArray( new TexArray( new Literal( 'a' ) ), new TexArray( new TexArray( new Literal( '\\hline ' ) ) ) ) ); $result = BaseParsing::matrix( $matrix, [], null, 'matrix', '002A' ); $this->assertStringContainsString( 'bottom', $result ); $this->assertStringContainsString( 'a', $result ); } public function testHLineLastLine() { $matrix = new Matrix( 'matrix', new TexArray( new TexArray( new Literal( 'a' ) ), new TexArray( new TexArray( new Literal( '\\hline ' ), new Literal( 'a' ) ) ) ) ); $result = BaseParsing::matrix( $matrix, [], null, 'matrix', '002A' ); $this->assertStringContainsString( 'solid', $result ); $this->assertStringContainsString( 'a', $result ); } public function testComplicatedHline() { $matrix = ( new TexVC() )->parse( '\\begin{array}{c} \\hline a\\\\ \\hline 1\\\\ 2\\\\ \\hline \\end{array}' )[0]; $result = BaseParsing::matrix( $matrix, [], null, 'matrix', '002A' ); $this->assertStringContainsString( 'solid none', $result ); $this->assertStringContainsString( 'top bottom', $result ); } }