dlna: count the number of children in the response to BrowseMetadata

This commit is contained in:
Dan Walters 2019-09-15 12:33:45 -05:00 committed by Nick Craig-Wood
parent ab89e93968
commit 2f10472df3
2 changed files with 15 additions and 4 deletions

View File

@ -77,10 +77,17 @@ func (cds *contentDirectoryService) cdsObjectToUpnpavObject(cdsObject object, fi
}
if fileInfo.IsDir() {
children, err := cds.readContainer(cdsObject, host)
if err != nil {
return nil, err
}
obj.Class = "object.container.storageFolder"
obj.Title = fileInfo.Name()
ret = upnpav.Container{Object: obj}
return
return upnpav.Container{
Object: obj,
ChildCount: len(children),
}, nil
}
if !fileInfo.Mode().IsRegular() {

View File

@ -3,6 +3,7 @@ package dlna
import (
"context"
"fmt"
"html"
"io/ioutil"
"net/http"
"net/url"
@ -118,6 +119,9 @@ func TestContentDirectoryBrowseMetadata(t *testing.T) {
assert.Equal(t, http.StatusOK, resp.StatusCode)
body, err := ioutil.ReadAll(resp.Body)
require.NoError(t, err)
require.Contains(t, string(body), "<container ")
require.NotContains(t, string(body), "<item ")
// expect a <container> element
require.Contains(t, string(body), html.EscapeString("<container "))
require.NotContains(t, string(body), html.EscapeString("<item "))
// with a non-zero childCount
require.Contains(t, string(body), html.EscapeString(`childCount="1"`))
}