test fixes

This commit is contained in:
Chakib Ben Ziane 2023-01-11 13:29:35 +01:00
parent 29fb93c98a
commit 97aa76288a
3 changed files with 37 additions and 26 deletions

View File

@ -208,7 +208,7 @@ func (ff *Firefox) scanBookmarks() ([]*MozBookmark, error) {
func (ff *Firefox) scanModifiedBookmarks(since timestamp) ([]*MozBookmark, error) { func (ff *Firefox) scanModifiedBookmarks(since timestamp) ([]*MozBookmark, error) {
// scan new/modifed folders and load them into node tree // scan new/modifed folders and load them into node tree
_, err := ff.scanFolders(since) _, err := ff.scanFolders(since)
tree.PrintTree(ff.NodeTree) // tree.PrintTree(ff.NodeTree)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -645,7 +645,6 @@ func (ff *Firefox) addTagNode(tagName string) (bool, *tree.Node) {
// add a folder node to the parsed node tree under the specified folder parent // add a folder node to the parsed node tree under the specified folder parent
// returns true if a new folder is created and false if folder already exists // returns true if a new folder is created and false if folder already exists
//TEST: add folder node tests
func (ff *Firefox) addFolderNode(folder MozFolder) (bool, *tree.Node){ func (ff *Firefox) addFolderNode(folder MozFolder) (bool, *tree.Node){
// use hashmap.RBTree to keep an index of scanned folders pointing // use hashmap.RBTree to keep an index of scanned folders pointing
@ -655,7 +654,10 @@ func (ff *Firefox) addFolderNode(folder MozFolder) (bool, *tree.Node){
if seen { if seen {
// Update folder name if changed // Update folder name if changed
if folderNode.Name != folder.Title {
if folderNode.Name != folder.Title &&
// Ignore root folders since we use our custom names
!utils.InList([]int{2,3,5,6}, int(folder.Id)){
log.Debugf("folder node <%s> updated to <%s>", folderNode.Name, folder.Title) log.Debugf("folder node <%s> updated to <%s>", folderNode.Name, folder.Title)
folderNode.Name = folder.Title folderNode.Name = folder.Title
} }
@ -673,7 +675,7 @@ func (ff *Firefox) addFolderNode(folder MozFolder) (bool, *tree.Node){
// If this folders' is a Firefox root folder use the appropriate title // If this folders' is a Firefox root folder use the appropriate title
// then add it to the root node // then add it to the root node
if utils.InList([]int{2,3,5,6}, int(folder.Id)) { if utils.InList([]int{2,3,5,6}, int(folder.Id)) {
folderNode.Name = mozilla.RootFolders[folder.Id] folderNode.Name = mozilla.RootFolderNames[folder.Id]
tree.AddChild(ff.NodeTree, folderNode) tree.AddChild(ff.NodeTree, folderNode)
} else { } else {
folderNode.Name = folder.Title folderNode.Name = folder.Title

View File

@ -21,6 +21,13 @@ import (
var ff Firefox var ff Firefox
func TestMain(m *testing.M) { func TestMain(m *testing.M) {
setupFirefox()
exitVal := m.Run()
os.Exit(exitVal)
}
func setupFirefox() {
ff = Firefox{ ff = Firefox{
FirefoxConfig: &FirefoxConfig{ FirefoxConfig: &FirefoxConfig{
BrowserConfig: &browsers.BrowserConfig{ BrowserConfig: &browsers.BrowserConfig{
@ -37,9 +44,6 @@ func TestMain(m *testing.M) {
tagMap: map[string]*tree.Node{}, tagMap: map[string]*tree.Node{},
folderMap: map[sqlid]*tree.Node{}, folderMap: map[sqlid]*tree.Node{},
} }
exitVal := m.Run()
os.Exit(exitVal)
} }
func runPlacesTest(name string, t *testing.T, test func(t *testing.T)) { func runPlacesTest(name string, t *testing.T, test func(t *testing.T)) {
@ -161,7 +165,7 @@ func Test_addFolderNode(t *testing.T) {
assert.True(t, created) assert.True(t, created)
// root folder should have appropriate title // root folder should have appropriate title
assert.Equal(t, fNode.Name, "Bookmarks Toolbar") assert.Equal(t, fNode.Name, mozilla.RootFolderNames[mozilla.ToolbarID])
// Should be underneath root folder // Should be underneath root folder
assert.Equal(t, fNode.Parent, ff.NodeTree) assert.Equal(t, fNode.Parent, ff.NodeTree)
@ -211,7 +215,9 @@ func Test_addFolderNode(t *testing.T) {
} }
// TODO: use tag name instead of id inside the map // TODO: use tag name instead of id inside the map
//FIX: reset firefox data
func Test_addTagNode(t *testing.T) { func Test_addTagNode(t *testing.T) {
setupFirefox()
testTag := struct { testTag := struct {
tagName string tagName string
@ -274,10 +280,6 @@ func Test_addTagNode(t *testing.T) {
}) })
} }
func Test_fetchUrlChanges(t *testing.T) {
t.Error("split into small units")
}
func Test_PlaceBookmarkTimeParsing(t *testing.T) { func Test_PlaceBookmarkTimeParsing(t *testing.T) {
assert := assert.New(t) assert := assert.New(t)
pb := mozilla.MergedPlaceBookmark{ pb := mozilla.MergedPlaceBookmark{
@ -477,18 +479,18 @@ func Test_scanBookmarks(t *testing.T) {
urlNode, exists := ff.URLIndex.Get(bk.Url) urlNode, exists := ff.URLIndex.Get(bk.Url)
assert.True(t, exists, "url missing in URLIndex") assert.True(t, exists, "url missing in URLIndex")
// URL node has the right parent folder node // check that url node has the right parent folder node
// If Parent is nil, it means no folder was assigned to this url node // If Parent is nil, it means no folder was assigned to this url node
parentFolder := bk.ParentFolder parentFolder := bk.ParentFolder
switch parentFolder { switch parentFolder {
case "unfiled": case "unfiled":
parentFolder = mozilla.RootFolders[mozilla.OtherID] parentFolder = mozilla.RootFolderNames[mozilla.OtherID]
case "mobile": case "mobile":
parentFolder = mozilla.RootFolders[mozilla.MobileID] parentFolder = mozilla.RootFolderNames[mozilla.MobileID]
} }
if urlNode.(*tree.Node).Parent != nil { if urlNode.(*tree.Node).Parent != nil {
assert.Equal(t, urlNode.(*tree.Node).Parent.Name, parentFolder, assert.Equal(t, parentFolder, urlNode.(*tree.Node).Parent.Name,
"wrong folder for <%s>", bk.Url) "wrong folder for <%s>", bk.Url)
} }
@ -497,8 +499,6 @@ func Test_scanBookmarks(t *testing.T) {
} }
}) })
tree.PrintTree(ff.NodeTree)
}) })
} }
@ -569,7 +569,7 @@ func Test_FindModifiedBookmarks(t *testing.T) {
modifiedBookmarks := map[string]bkTestData{ modifiedBookmarks := map[string]bkTestData{
"https://go.dev/": { "https://go.dev/": {
tags: []string{"language"}, tags: []string{"language"},
folders: []string{mozilla.RootFolders[mozilla.OtherID]}, // unfiled folder folders: []string{mozilla.RootFolderNames[mozilla.OtherID]}, // unfiled folder
}, },
} }
@ -579,14 +579,14 @@ func Test_FindModifiedBookmarks(t *testing.T) {
tags: []string{"bitcoin"}, tags: []string{"bitcoin"},
folders: []string{ folders: []string{
"Cryptocurrencies", "Cryptocurrencies",
mozilla.RootFolders[mozilla.OtherID], mozilla.RootFolderNames[mozilla.OtherID],
mozilla.RootFolders[mozilla.ToolbarID], mozilla.RootFolderNames[mozilla.ToolbarID],
}, },
}, },
"https://lightning.network/": { "https://lightning.network/": {
tags: []string{"bitcoin", "lightning"}, tags: []string{"bitcoin", "lightning"},
folders: []string{mozilla.RootFolders[mozilla.OtherID]}, folders: []string{mozilla.RootFolderNames[mozilla.OtherID]},
}, },
} }
@ -680,5 +680,5 @@ func Test_FindModifiedBookmarks(t *testing.T) {
} }
func Test_FindModifiedFolders(t *testing.T) { func Test_FindModifiedFolders(t *testing.T) {
t.Error("find modified folders") t.Error("modified folder names should change the according bookmark tags")
} }

View File

@ -22,15 +22,24 @@ import (
type Sqlid int64 type Sqlid int64
var RootFolders = map[Sqlid]string{ // Represnets the root folder names as shown on Firefox
RootID: RootName, var RootFolderTitles = map[Sqlid]string{
MenuID: "Bookmarks Menu", MenuID: "Bookmarks Menu",
ToolbarID: "Bookmarks Toolbar", ToolbarID: "Bookmarks Toolbar",
TagsID: TagsBranchName,
OtherID: "Other Bookmarks", OtherID: "Other Bookmarks",
MobileID: "Mobile Bookmarks", MobileID: "Mobile Bookmarks",
} }
// Some root folders names in the tree
var RootFolderNames = map[Sqlid]string{
RootID: RootName,
TagsID: TagsBranchName,
MenuID: "menu",
ToolbarID: "toolbar",
OtherID: "other",
MobileID: "mobile",
}
const ( const (
// Name of the root node // Name of the root node
RootName = `ROOT` RootName = `ROOT`