github.com/aarzilli/tools@v0.0.0-20151123112009-0d27094f75e0/net/http/domclean2/t_breakout_imgs_from_a_trees_test.go (about)

     1  // +build split
     2  // go test -tags=split
     3  
     4  package domclean2
     5  
     6  import (
     7  	"bytes"
     8  	"strings"
     9  	"testing"
    10  
    11  	"github.com/pbberlin/tools/net/http/loghttp"
    12  	"github.com/pbberlin/tools/os/osutilpb"
    13  	"golang.org/x/net/html"
    14  )
    15  
    16  var testDocs = make([]string, 2)
    17  
    18  func init() {
    19  
    20  	// inp
    21  	testDocs[0] = `<!DOCTYPE html><html><head>
    22  		</head><body>
    23  
    24  			<p>
    25  				<a href="/some/first/page.html">Links1:
    26  					no img
    27  				</a>
    28  				<a href="/some/first/page.html">Links2:
    29  					<span>text bef</span>
    30  					<img src="/img1src" title="img-title-01" />
    31  					<span>text aft</span>
    32  				</a>
    33  				
    34  			</p>
    35  			<div>
    36  				<div>
    37  					<a href="/some/first/page.html">Links3:
    38  						<span>text2 bef</span>
    39  						<span>
    40  							<span>text3 bef</span>
    41  							<img src="/img1src" title="img-title-02" />
    42  							<span>text3 aft</span>
    43  						</span>
    44  						<span>text2 aft</span>
    45  					</a>
    46  				</div>
    47  			</div>
    48  		</body></html>`
    49  
    50  	// want
    51  	testDocs[1] = `<!DOCTYPE html><html><head></head><body>
    52  	<p>
    53  		<a href="/some/first/page.html">Links1:
    54  					no img 
    55  		</a>
    56  		<a href="/some/first/page.html">Links2: 
    57  			<span>text bef 
    58  			</span>
    59  		</a>
    60  		<a href="/img1src" title="img-title-01" cfrom="img">[img] img-title-01 /img1src | 
    61  		</a>
    62  		<a href="/some/first/page.html">
    63  			<span>text aft 
    64  			</span>
    65  		</a>
    66  	</p>
    67  	<div>
    68  		<div>
    69  			<a href="/some/first/page.html">Links3: 
    70  				<span>text2 bef 
    71  				</span>
    72  				<span>
    73  					<span>text3 bef 
    74  					</span>
    75  				</span>
    76  			</a>
    77  			<a href="/img1src" title="img-title-02" cfrom="img">[img] img-title-02 /img1src | 
    78  			</a>
    79  			<a href="/some/first/page.html">
    80  				<span>
    81  					<span>text3 aft 
    82  					</span>
    83  				</span>
    84  				<span>text2 aft 
    85  				</span>
    86  			</a>
    87  		</div>
    88  	</div></body></html>`
    89  
    90  }
    91  
    92  func Test2(t *testing.T) {
    93  
    94  	lg, lge := loghttp.Logger(nil, nil)
    95  
    96  	doc, err := html.Parse(strings.NewReader(testDocs[0]))
    97  	if err != nil {
    98  		lge(err)
    99  		return
   100  	}
   101  	removeCommentsAndIntertagWhitespace(NdX{doc, 0})
   102  
   103  	breakoutImagesFromAnchorTrees(doc)
   104  
   105  	removeCommentsAndIntertagWhitespace(NdX{doc, 0})
   106  	reIndent(doc, 0)
   107  	var b bytes.Buffer
   108  	err = html.Render(&b, doc)
   109  	lge(err)
   110  	if b.String() != testDocs[1] {
   111  		t.Errorf("output unexpted")
   112  	}
   113  
   114  	osutilpb.Bytes2File("outp1_inp.html", []byte(testDocs[0]))
   115  	osutilpb.Dom2File("outp2_got.html", doc)
   116  	osutilpb.Bytes2File("outp3_want.html", []byte(testDocs[1]))
   117  
   118  	lg("end")
   119  
   120  }