// GoToSocial // Copyright (C) GoToSocial Authors admin@gotosocial.org // SPDX-License-Identifier: AGPL-3.0-or-later // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . package router import ( "html/template" "testing" ) func TestOutdentPre(t *testing.T) { const html = template.HTML(`

Here's a bunch of HTML, read it and weep, weep then!

<section class="about-user">
                    <div class="col-header">
                        <h2>About</h2>
                    </div>            
                    <div class="fields">
                        <h3 class="sr-only">Fields</h3>
                        <dl>
                            <div class="field">
                                <dt>should you follow me?</dt>
                                <dd>maybe!</dd>
                            </div>
                            <div class="field">
                                <dt>age</dt>
                                <dd>120</dd>
                            </div>
                        </dl>
                    </div>
                    <div class="bio">
                        <h3 class="sr-only">Bio</h3>
                        <p>i post about things that concern me</p>
                    </div>
                    <div class="sr-only" role="group">
                        <h3 class="sr-only">Stats</h3>
                        <span>Joined in Jun, 2022.</span>
                        <span>8 posts.</span>
                        <span>Followed by 1.</span>
                        <span>Following 1.</span>
                    </div>
                    <div class="accountstats" aria-hidden="true">
                        <b>Joined</b><time datetime="2022-06-04T13:12:00.000Z">Jun, 2022</time>
                        <b>Posts</b><span>8</span>
                        <b>Followed by</b><span>1</span>
                        <b>Following</b><span>1</span>
                    </div>
                </section>
                

There, hope you liked that!

Here's a bunch of HTML, read it and weep, weep then!

<section class="about-user">
                    <div class="col-header">
                        <h2>About</h2>
                    </div>            
                    <div class="fields">
                        <h3 class="sr-only">Fields</h3>
                        <dl>
                            <div class="field">
                                <dt>should you follow me?</dt>
                                <dd>maybe!</dd>
                            </div>
                            <div class="field">
                                <dt>age</dt>
                                <dd>120</dd>
                            </div>
                        </dl>
                    </div>
                    <div class="bio">
                        <h3 class="sr-only">Bio</h3>
                        <p>i post about things that concern me</p>
                    </div>
                    <div class="sr-only" role="group">
                        <h3 class="sr-only">Stats</h3>
                        <span>Joined in Jun, 2022.</span>
                        <span>8 posts.</span>
                        <span>Followed by 1.</span>
                        <span>Following 1.</span>
                    </div>
                    <div class="accountstats" aria-hidden="true">
                        <b>Joined</b><time datetime="2022-06-04T13:12:00.000Z">Jun, 2022</time>
                        <b>Posts</b><span>8</span>
                        <b>Followed by</b><span>1</span>
                        <b>Following</b><span>1</span>
                    </div>
                </section>
                

There, hope you liked that!

`) const expected = template.HTML(`

Here's a bunch of HTML, read it and weep, weep then!

<section class="about-user">
    <div class="col-header">
        <h2>About</h2>
    </div>            
    <div class="fields">
        <h3 class="sr-only">Fields</h3>
        <dl>
            <div class="field">
<dt>should you follow me?</dt>
<dd>maybe!</dd>
            </div>
            <div class="field">
<dt>age</dt>
<dd>120</dd>
            </div>
        </dl>
    </div>
    <div class="bio">
        <h3 class="sr-only">Bio</h3>
        <p>i post about things that concern me</p>
    </div>
    <div class="sr-only" role="group">
        <h3 class="sr-only">Stats</h3>
        <span>Joined in Jun, 2022.</span>
        <span>8 posts.</span>
        <span>Followed by 1.</span>
        <span>Following 1.</span>
    </div>
    <div class="accountstats" aria-hidden="true">
        <b>Joined</b><time datetime="2022-06-04T13:12:00.000Z">Jun, 2022</time>
        <b>Posts</b><span>8</span>
        <b>Followed by</b><span>1</span>
        <b>Following</b><span>1</span>
    </div>
</section>

There, hope you liked that!

Here's a bunch of HTML, read it and weep, weep then!

<section class="about-user">
    <div class="col-header">
        <h2>About</h2>
    </div>            
    <div class="fields">
        <h3 class="sr-only">Fields</h3>
        <dl>
            <div class="field">
<dt>should you follow me?</dt>
<dd>maybe!</dd>
            </div>
            <div class="field">
<dt>age</dt>
<dd>120</dd>
            </div>
        </dl>
    </div>
    <div class="bio">
        <h3 class="sr-only">Bio</h3>
        <p>i post about things that concern me</p>
    </div>
    <div class="sr-only" role="group">
        <h3 class="sr-only">Stats</h3>
        <span>Joined in Jun, 2022.</span>
        <span>8 posts.</span>
        <span>Followed by 1.</span>
        <span>Following 1.</span>
    </div>
    <div class="accountstats" aria-hidden="true">
        <b>Joined</b><time datetime="2022-06-04T13:12:00.000Z">Jun, 2022</time>
        <b>Posts</b><span>8</span>
        <b>Followed by</b><span>1</span>
        <b>Following</b><span>1</span>
    </div>
</section>

There, hope you liked that!

`) out := outdentPre(html) if out != expected { t.Fatalf("unexpected output:\n`%s`\n", out) } }