github.com/jancarloviray/community@v0.41.1-0.20170124221257-33a66c87cf2f/sdk/exttest/pages.go (about)

     1  // Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
     2  //
     3  // This software (Documize Community Edition) is licensed under
     4  // GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
     5  //
     6  // You can operate outside the AGPL restrictions by purchasing
     7  // Documize Enterprise Edition and obtaining a commercial license
     8  // by contacting <sales@documize.com>.
     9  //
    10  // https://documize.com
    11  
    12  package exttest
    13  
    14  import (
    15  	"fmt"
    16  	"strings"
    17  	"testing"
    18  
    19  	"github.com/documize/community/core/api/endpoint/models"
    20  	"github.com/documize/community/core/api/entity"
    21  	"github.com/documize/community/sdk"
    22  )
    23  
    24  func testPages(t *testing.T, c *documize.Client, testFolder, testFile, testData string) {
    25  
    26  	lastSeq := 0.0
    27  	dp, err := c.GetDocumentPages(testFile)
    28  	if err != nil {
    29  		t.Error(err)
    30  	} else {
    31  		var pageIDs []string
    32  		for _, v := range dp {
    33  			pageIDs = append(pageIDs, v.RefID)
    34  			if v.Sequence > lastSeq {
    35  				lastSeq = v.Sequence
    36  			}
    37  		}
    38  		pageIDlist := strings.Join(pageIDs, ",")
    39  		if dpb, err2 := c.GetDocumentPagesBatch(testFile, pageIDlist); err != nil {
    40  			t.Error(err2)
    41  		} else {
    42  			for k, v := range dp {
    43  				if v.Body != dpb[k].Body {
    44  					t.Errorf("page %d from GetDocumentPages != from GetDocumentPagesBatch", k)
    45  				}
    46  			}
    47  		}
    48  	}
    49  
    50  	const numPages = 100
    51  	pagesAdded := make([]*entity.Page, 0, numPages)
    52  	for i := 0; i < numPages; i++ {
    53  		lastSeq += 1000.0
    54  		pg := entity.Page{
    55  			DocumentID:  testFile,
    56  			Level:       1,
    57  			Title:       "AddPage() title " + fmt.Sprintf("%d", i),
    58  			Body:        "AddPage() body " + fmt.Sprintf("%d", i),
    59  			ContentType: "wysiwyg",
    60  			Sequence:    lastSeq,
    61  		}
    62  		if newPg, err2 := c.AddDocumentPage(testFile, &pg); err != nil {
    63  			t.Error(err2)
    64  		} else {
    65  			pagesAdded = append(pagesAdded, newPg)
    66  		}
    67  	}
    68  
    69  	if len(pagesAdded) < 2 {
    70  		t.Error("Less than two pages added, cannot continue with pages test")
    71  		return
    72  	}
    73  
    74  	err = c.ChangeDocumentPageLevel(testFile, &[]models.PageLevelRequestModel{
    75  		{PageID: pagesAdded[0].RefID, Level: int(pagesAdded[0].Level + 42)},
    76  	})
    77  	if err != nil {
    78  		t.Error(err)
    79  	}
    80  
    81  	err = c.ChangeDocumentPageSequence(testFile, &[]models.PageSequenceRequestModel{
    82  		{PageID: pagesAdded[0].RefID, Sequence: pagesAdded[0].Sequence - 1.0},
    83  	})
    84  	if err != nil {
    85  		t.Error(err)
    86  	}
    87  
    88  	pagesAdded[0].Body += " - Modified!"
    89  	err = c.UpdateDocumentPage(pagesAdded[0])
    90  	if err != nil {
    91  		t.Error(err)
    92  	}
    93  
    94  	err = c.DeleteDocumentPage(testFile, pagesAdded[0].RefID)
    95  	if err != nil {
    96  		t.Error(err)
    97  	} else {
    98  		t.Log("INFO: Deleted single doc page", pagesAdded[0].RefID)
    99  	}
   100  
   101  	delList := []string{pagesAdded[1].RefID}
   102  	for k, v := range pagesAdded {
   103  		if k > 1 {
   104  			delList = append(delList, v.RefID)
   105  		}
   106  	}
   107  	err = c.DeleteDocumentPages(testFile, delList)
   108  	if err != nil {
   109  		t.Error(err)
   110  	} else {
   111  		t.Log("INFO: Deleted multiple doc pages:", len(delList))
   112  	}
   113  
   114  }