summaryrefslogtreecommitdiffstats
path: root/js/tests
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-08 17:56:53 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-08 17:56:53 +0200
commitca0864dbcd2b01a31a997c1db28aa241512dcb5f (patch)
treeb6881722220ae3f47bb3d502091d3d0dc736975a /js/tests
parente6d926de620a470a487010f02b47e3932512db93 (diff)
prework for adding folders
Diffstat (limited to 'js/tests')
-rw-r--r--js/tests/services/bl/folderblSpec.coffee8
-rw-r--r--js/tests/services/opmlparserSpec.coffee135
2 files changed, 139 insertions, 4 deletions
diff --git a/js/tests/services/bl/folderblSpec.coffee b/js/tests/services/bl/folderblSpec.coffee
index 251ceeb36..09c7f85ed 100644
--- a/js/tests/services/bl/folderblSpec.coffee
+++ b/js/tests/services/bl/folderblSpec.coffee
@@ -30,11 +30,12 @@ describe 'FolderBl', ->
@persistence = {}
beforeEach inject (@FolderBl, @FolderModel, @FeedModel, @ShowAll,
- @ActiveFeed, @FeedType) =>
+ @ActiveFeed, @FeedType, @_ExistsError) =>
@ShowAll.setShowAll(false)
@ActiveFeed.handle({type: @FeedType.Feed, id:0})
+
it 'should delete folders', =>
@FolderModel.removeById = jasmine.createSpy('remove')
@persistence.deleteFolder = jasmine.createSpy('deletequery')
@@ -130,3 +131,8 @@ describe 'FolderBl', ->
expect(@FolderBl.getAll()).toContain(item2)
+ it 'should not create a folder if it already exists', =>
+ item1 = {id: 4, open: true, name: 'john'}
+ @FolderModel.add(item1)
+
+ expect(@FolderBl.create('johns')).toThrow(new @_ExistsError())
diff --git a/js/tests/services/opmlparserSpec.coffee b/js/tests/services/opmlparserSpec.coffee
index ad40fc6dc..fb2560626 100644
--- a/js/tests/services/opmlparserSpec.coffee
+++ b/js/tests/services/opmlparserSpec.coffee
@@ -17,6 +17,7 @@ GNU AFFERO GENERAL PUBLIC LICENSE for more details.
You should have received a copy of the GNU Affero General Public
License along with this library. If not, see <http://www.gnu.org/licenses/>.
+
###
@@ -26,11 +27,139 @@ describe 'OPMLParser', ->
beforeEach module 'News'
beforeEach inject (@OPMLParser) =>
+ @opml = '<?xml version="1.0" ?>
+ <opml version="1.1">
+ <!--Generated by NewsBlur - www.newsblur.com-->
+ <head>
+ <title>
+ NewsBlur Feeds
+ </title>
+ <dateCreated>
+ 2013-03-14 16:44:01.356965
+ </dateCreated>
+ <dateModified>
+ 2013-03-14 16:44:01.356965
+ </dateModified>
+ </head>
+ <body>
+ <outline htmlUrl="http://www.reddit.com/r/tldr/"
+ text="test_text" type="rss" version="RSS"
+ xmlUrl="http://www.reddit.com/r/tldr.rss"/>
+
+ <outline htmlUrl="http://news.ycombinator.com"
+ text="Hacker News 200" title="Hacker News 200" type="rss"
+ version="RSS"
+ xmlUrl=
+ "http://feeds.feedburner.com/hacker-news-feed-200?format=xml"/>
+
+ <outline text="Design" title="Design">
+ <outline htmlUrl="http://worrydream.com/" text=
+ "&lt;div&gt;Bret Victor\'s website&lt;/div&gt;"
+ title="&lt;div&gt;Bret Victor\'s website&lt;/div&gt;"
+ type="rss"
+ version="RSS" xmlUrl="http://worrydream.com/feed.xml"/>
+
+ <outline htmlUrl="http://www.hylkebons.nl/journal/rss/" text=
+ "Journal - Hylke Bons"
+ title="Journal - Hylke Bons"
+ type="rss"
+ version="RSS" xmlUrl="http://feeds.feedburner.com/HbonsHome"/>
+
+ <outline htmlUrl="http://afaikblog.wordpress.com" text=
+ "As far as I know"
+ title="As far as I know"
+ type="rss"
+ version="RSS" xmlUrl="https://afaikblog.wordpress.com/feed/"/>
+
+ <outline htmlUrl="http://informationarchitects.net" text=
+ "Information Architects"
+ title="Information Architects"
+ type="rss"
+ version="RSS" xmlUrl="http://informationarchitects.net/feed/"/>
+
+ <outline htmlUrl="http://ignorethecode.net" text=
+ "ignorethecode.net"
+ title="ignorethecode.net"
+ type="rss"
+ version="RSS"
+ xmlUrl="http://feeds.feedburner.com/IgnoreTheCode"/>
+
+ <outline htmlUrl="http://blogs.gnome.org/mccann" text=
+ "Push the Button"
+ title="Push the Button"
+ type="rss"
+ version="RSS" xmlUrl="https://blogs.gnome.org/mccann/feed/"/>
+
+ <outline htmlUrl="http://littlebigdetails.com/" text=
+ "Little Big Details"
+ title="Little Big Details"
+ type="rss"
+ version="RSS"
+ xmlUrl="http://feeds.feedburner.com/littlebigdetails"/>
+
+ <outline htmlUrl="http://theixdlibrary.com" text=
+ "The IxD Library"
+ title="The IxD Library" type="rss"
+ version="RSS" xmlUrl="http://theixdlibrary.com/feed/"/>
+ </outline>
+
+ <outline text="Nomadism" title="Nomadism">
+
+ <outline htmlUrl="http://a-flat.posterous.com"
+ text="a-flat" title="a-flat" type="rss"
+ version="RSS" xmlUrl="http://a-flat.posterous.com/rss.xml"/>
+
+ <outline htmlUrl="http://egor.im"
+ text="egor.im" title="egor.im" type="rss"
+ version="RSS" xmlUrl="http://feeds.feedburner.com/egorim"/>
+
+ <outline htmlUrl="http://nomadbase.org/"
+ text="nomadbase - find the others..."
+ title="nomadbase - find the others..." type="rss"
+ version="RSS" xmlUrl="http://nomadbase.org/rss.xml"/>
+
+ <outline htmlUrl="http://casarobino.org/frontpage"
+ text="Casa Robino - Shared Hospitality"
+ title="Casa Robino - Shared Hospitality" type="rss"
+ version="RSS" xmlUrl="http://casarobino.org/rss.xml"/>
+
+ <outline htmlUrl="http://casabhavani.org"
+ text="Casa Bhavani" title="Casa Bhavani" type="rss"
+ version="RSS" xmlUrl="http://casabhavani.org/feed/"/>
+
+ </outline>
+
+ <outline htmlUrl="http://www.elezea.com"
+ text="Elezea" title="Elezea" type="rss"
+ version="RSS" xmlUrl="http://feeds.feedburner.com/elezea"/>
+
+ </body>
+ </opml>'
+ @data = @OPMLParser.parseXML(@opml)
it 'should return only the root folder when parsing empty OPML', =>
- @data = @OPMLParser.parseXML('')
- expect(@data.getName()).toBe('root')
+ data = @OPMLParser.parseXML('')
+ expect(data.getName()).toBe('root')
- # TODO: write rest \ No newline at end of file
+ it 'should parse folders', =>
+ firstLevel = @data.getItems()
+ expect(firstLevel[2].isFolder()).toBe(true)
+ expect(firstLevel[2].getName()).toBe('Design')
+
+
+ it 'should parse feeds', =>
+ firstLevel = @data.getItems()[0]
+ expect(firstLevel.isFolder()).toBe(false)
+ expect(firstLevel.getUrl()).toBe('http://www.reddit.com/r/tldr.rss')
+ expect(firstLevel.getName()).toBe('test_text')
+
+
+ it 'should nest feeds', =>
+ secondLevel = @data.getItems()[2].getItems()[1]
+ expect(secondLevel.isFolder()).toBe(false)
+ expect(secondLevel.getUrl()).
+ toBe('http://feeds.feedburner.com/HbonsHome')
+ expect(secondLevel.getName()).toBe('Journal - Hylke Bons')
+