github.com/vugu/vugu@v0.3.6-0.20240430171613-3f6f402e014b/gen/parser-compact_test.go (about)

     1  package gen
     2  
     3  import (
     4  	"bytes"
     5  	"log"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  	// "github.com/vugu/vugu/internal/htmlx"
    10  	// "golang.org/x/net/html"
    11  	"github.com/vugu/html"
    12  )
    13  
    14  func TestCompactNodeTree(t *testing.T) {
    15  
    16  	assert := assert.New(t)
    17  
    18  	var in = `<html>
    19  <head></head>
    20  <body>
    21  	<div>
    22  		<ul>
    23  			<li vg-for="abc123" vg-html="something"></li>
    24  		</ul>
    25  		<p>
    26  			This is some static text here, <strong>blah</strong> bleh <em>blee</em>.
    27  		</p>
    28  	</div>
    29  </body>
    30  </html>`
    31  
    32  	n, err := html.Parse(bytes.NewReader([]byte(in)))
    33  	if err != nil {
    34  		t.Fatal(err)
    35  	}
    36  
    37  	assert.NoError(compactNodeTree(n))
    38  
    39  	var buf bytes.Buffer
    40  	assert.NoError(html.Render(&buf, n))
    41  
    42  	log.Printf("OUT:\n%s", buf.String())
    43  
    44  	assert.Contains(buf.String(), "<p vg-html=\"vugu.HTML(&#34;")
    45  
    46  	// log.Printf("HERE: %#v", n.FirstChild.FirstChild.NextSibling.FirstChild.FirstChild)
    47  	// log.Printf("HERE: %#v", n.FirstChild.FirstChild.NextSibling.NextSibling.FirstChild.FirstChild.NextSibling.NextSibling)
    48  	// log.Printf("HERE: %#v", n.FirstChild.FirstChild.NextSibling.NextSibling) // body
    49  	// log.Printf("HERE: %#v", n.FirstChild.FirstChild.NextSibling.NextSibling.FirstChild.NextSibling) // div
    50  	// log.Printf("HERE: %#v", n.FirstChild.FirstChild.NextSibling.NextSibling.FirstChild.NextSibling.FirstChild.NextSibling) // ul
    51  	// log.Printf("HERE: %#v", n.FirstChild.FirstChild.NextSibling.NextSibling.FirstChild.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling)
    52  
    53  	// p := n.FirstChild.FirstChild.NextSibling.NextSibling.FirstChild.NextSibling.FirstChild.NextSibling.NextSibling.NextSibling
    54  	// log.Printf("p = %#v", p)
    55  	// assert.NoError(html.Render(&buf, p))
    56  	// log.Printf("OUT:\n%s", buf.String())
    57  
    58  	// log.Printf("p.FirstChild = %#v", p.FirstChild)
    59  	// log.Printf("p.FirstChild.NextSibling = %#v", p.FirstChild.NextSibling)
    60  	// log.Printf("p.FirstChild.NextSibling.NextSibling = %#v", p.FirstChild.NextSibling.NextSibling)
    61  
    62  	// assert.NoError(html.Render(&buf, p.FirstChild))
    63  	// log.Printf("OUT:\n%s", buf.String())
    64  
    65  }