summaryrefslogtreecommitdiffstats
path: root/t/100markdown.t
blob: 5cc6ecd4e425d756085a9c8d4bea94d57bbc7aa6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.

# Enforce high standards against code that will be installed

use 5.14.0;
use strict;
use warnings;

use lib qw(. lib local/lib/perl5 t);
use Test2::Bundle::Extended;
use Bugzilla;
use Bugzilla::Bug;
use Bugzilla::Comment;
use Bugzilla::User;
use Bugzilla::Markdown;

my $user_mock = mock 'Bugzilla::User' => (
    override_constructor => ['new', 'hash'],
);

my $comment_mock = mock 'Bugzilla::Comment' => (
    add_constructor => ['new', 'hash'],
);

my $bug_mock = mock 'Bugzilla::Bug' => (
    override_constructor => ['new', 'hash'],
);

# mocked objects just take all constructor args and put them into the hash.
my $user = Bugzilla::User->new(
    userid => 33,
    settings => { use_markdown => { is_enabled => 1, value => 'on' } },
);
my $bug = Bugzilla::Bug->new(bug_id => 666);
my $comment = Bugzilla::Comment->new(already_wrapped => 0);

Bugzilla->set_user($user);

my $markdown_text = <<MARKDOWN;
```
this is a block
> with an embedded blockquote
```
MARKDOWN

my $markdown = Bugzilla::Markdown->new();

ok($markdown, "got a new markdown object");
my $markdown_html = $markdown->markdown($markdown_text, $bug, $comment);
is("<pre><code>this is a block\n"
    . "&gt; with an embedded blockquote</code></pre>\n",
    $markdown_html, "code block with embedded block quote");

done_testing;