Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

38 add edit button to bitbucket files #45

Merged
merged 12 commits into from
Oct 25, 2023
4 changes: 2 additions & 2 deletions src/Domain/ContentRenderer/CodeRenderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class CodeRenderer implements ContentRenderer {
public function __construct(
private string $language,
private bool $showLineNumbers,
private bool $showEditButton = false
private bool $showEditButton
) {
}

Expand Down Expand Up @@ -58,7 +58,7 @@ private function getWrapperAttributes( string $contentUrl ): array {

$attributes['data-toolbar-order'] = 'copy-to-clipboard';

if ( $this->showEditButton == true ) {
if ( $this->showEditButton ) {
$attributes['data-toolbar-order'] = 'bitbucket-edit,' . $attributes['data-toolbar-order'];
$attributes['data-src'] = $contentUrl;
}
Expand Down
2 changes: 1 addition & 1 deletion src/Domain/ContentRenderer/RendererConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public function __construct(
public string $fileExtension,
public string $language,
public bool $showLineNumbers,
public bool $showEditButton = false
public bool $showEditButton
) {
}

Expand Down
2 changes: 1 addition & 1 deletion src/UseCases/Embed/EmbedRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public function __construct(
public string $fileUrl,
public ?string $language,
public ?bool $showLineNumbers,
public bool $showEditButton = false
public bool $showEditButton
) {
}

Expand Down
17 changes: 12 additions & 5 deletions tests/Integration/Domain/CodeRendererTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,35 +15,42 @@ class CodeRendererTest extends TestCase {
public function testRendersSimplePhpWithoutLineNumbers(): void {
$this->assertSame(
'<pre class="external-content" data-toolbar-order="copy-to-clipboard"><code class="language-php">print( "Hello world" );</code></pre>',
( new CodeRenderer( language: 'php', showLineNumbers: false ) )->render( 'print( "Hello world" );', '' )
( new CodeRenderer( language: 'php', showLineNumbers: false, showEditButton: false ) )->render( 'print( "Hello world" );', '' )
);
}

public function testRendersSimpleTypescriptWithLineNumbers(): void {
$this->assertSame(
'<pre class="external-content line-numbers" data-toolbar-order="copy-to-clipboard"><code class="language-typescript">console.log( "Hello world" as string );</code></pre>',
( new CodeRenderer( language: 'typescript', showLineNumbers: true ) )->render( 'console.log( "Hello world" as string );', '' )
( new CodeRenderer( language: 'typescript', showLineNumbers: true, showEditButton: false ) )->render( 'console.log( "Hello world" as string );', '' )
);
}

public function testRendersEscapedHtml(): void {
$this->assertSame(
'<pre class="external-content" data-toolbar-order="copy-to-clipboard"><code class="language-html">&lt;script>alert( "HAX" );&lt;/script></code></pre>',
( new CodeRenderer( language: 'html', showLineNumbers: false ) )->render( '<script>alert( "HAX" );</script>', '' )
( new CodeRenderer( language: 'html', showLineNumbers: false, showEditButton: false ) )->render( '<script>alert( "HAX" );</script>', '' )
);
}

public function testRendersEscapedHtmlWithWrongLanguage(): void {
$this->assertSame(
'<pre class="external-content" data-toolbar-order="copy-to-clipboard"><code class="language-javascript">&lt;script>alert( "HAX" );&lt;/script></code></pre>',
( new CodeRenderer( language: 'javascript', showLineNumbers: false ) )->render( '<script>alert( "HAX" );</script>', '' )
( new CodeRenderer( language: 'javascript', showLineNumbers: false, showEditButton: false ) )->render( '<script>alert( "HAX" );</script>', '' )
);
}

public function testRendersEscapedPartialHtml(): void {
$this->assertSame(
'<pre class="external-content" data-toolbar-order="copy-to-clipboard"><code class="language-html">&lt;/code>&lt;/pre>FOO</code></pre>',
( new CodeRenderer( language: 'html', showLineNumbers: false ) )->render( '</code></pre>FOO', '' )
( new CodeRenderer( language: 'html', showLineNumbers: false, showEditButton: false ) )->render( '</code></pre>FOO', '' )
);
}

public function testRendersShowEditButton(): void {
$this->assertSame(
'<pre class="external-content" data-toolbar-order="bitbucket-edit,copy-to-clipboard" data-src="http://bitbucket:7990/projects/TEST/repos/test/browse/test.php"><code class="language-php">&lt;/code>&lt;/pre>FOO</code></pre>',
( new CodeRenderer( language: 'php', showLineNumbers: false, showEditButton: true ) )->render( '</code></pre>FOO', 'http://bitbucket:7990/projects/TEST/repos/test/browse/test.php' )
);
}

Expand Down
23 changes: 14 additions & 9 deletions tests/Unit/Domain/WikiContentRendererFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,59 +20,64 @@ public function testMarkdownFileAndConfigWithoutLanguageCreatesMarkdownRenderer(
new RendererConfig(
fileExtension: 'md',
language: '',
showLineNumbers: false
showLineNumbers: false,
showEditButton: false
)
)
);
}

public function testConfigWithoutLanguageCreatesCodeRenderer(): void {
$this->assertEquals(
new CodeRenderer( language: 'php', showLineNumbers: false ),
new CodeRenderer( language: 'php', showLineNumbers: false, showEditButton: false ),
( new WikiContentRendererFactory() )->createContentRenderer(
new RendererConfig(
fileExtension: 'php',
language: '',
showLineNumbers: false
showLineNumbers: false,
showEditButton: false
)
)
);
}

public function testConfigWithLanguageCreatesCodeRenderer(): void {
$this->assertEquals(
new CodeRenderer( language: 'php', showLineNumbers: false ),
new CodeRenderer( language: 'php', showLineNumbers: false, showEditButton: false ),
( new WikiContentRendererFactory() )->createContentRenderer(
new RendererConfig(
fileExtension: 'php',
language: 'php',
showLineNumbers: false
showLineNumbers: false,
showEditButton: false
)
)
);
}

public function testConfigWithLanguageAndLineNumbersCreatesCodeRenderer(): void {
$this->assertEquals(
new CodeRenderer( language: 'php', showLineNumbers: true ),
new CodeRenderer( language: 'php', showLineNumbers: true, showEditButton: false ),
( new WikiContentRendererFactory() )->createContentRenderer(
new RendererConfig(
fileExtension: 'php',
language: 'php',
showLineNumbers: true
showLineNumbers: true,
showEditButton: false
)
)
);
}

public function testConfigWithMarkdownLanguageCreatesCodeRenderer(): void {
$this->assertEquals(
new CodeRenderer( language: 'md', showLineNumbers: false ),
new CodeRenderer( language: 'md', showLineNumbers: false, showEditButton: false ),
( new WikiContentRendererFactory() )->createContentRenderer(
new RendererConfig(
fileExtension: 'md',
language: 'md',
showLineNumbers: false
showLineNumbers: false,
showEditButton: false
)
)
);
Expand Down
3 changes: 2 additions & 1 deletion tests/Unit/UseCases/Embed/EmbedUseCaseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ private function createRequest( string $fileUrl ): EmbedRequest {
return new EmbedRequest(
fileUrl: $fileUrl,
language: '',
showLineNumbers: false
showLineNumbers: false,
showEditButton: false
);
}

Expand Down
Loading