diff options
Diffstat (limited to 'tests/command')
-rw-r--r-- | tests/command/feeds.bats | 103 | ||||
-rw-r--r-- | tests/command/folders.bats | 8 | ||||
-rw-r--r-- | tests/command/items.bats | 85 | ||||
-rw-r--r-- | tests/command/opml.bats | 8 |
4 files changed, 75 insertions, 129 deletions
diff --git a/tests/command/feeds.bats b/tests/command/feeds.bats index 5ad52dc30..97b4c27d1 100644 --- a/tests/command/feeds.bats +++ b/tests/command/feeds.bats @@ -1,50 +1,41 @@ #!/usr/bin/env bats -load "helpers/settings" +setup(){ + load "../test_helper/bats-support/load" + load "../test_helper/bats-assert/load" + load "helpers/settings" +} TESTSUITE="Feeds" teardown() { - ID=$(./occ news:feed:list 'admin' | grep "Something-${BATS_SUITE_TEST_NUMBER}" -2 | head -1 | grep -oE '[0-9]*') - if [ -n "$ID" ]; then - ./occ news:feed:delete "$user" "$ID" - fi + ID_LIST=($(./occ news:feed:list 'admin' | grep -Po '"id": \K([0-9]+)' | tr '\n' ' ')) + for ID in $ID_LIST; do + ./occ news:feed:delete "$user" "$ID" -v + done } @test "[$TESTSUITE] Create new" { - run "./occ" news:feed:add "$user" "$NC_FEED" - [ "$status" -eq 0 ] - - if ! echo "$output" | grep '"ID":'; then - ret_status=$? - echo "Feed ID not returned" - return $ret_status - fi + run "./occ" news:feed:add "$user" "$NC_FEED" --title "Something-${BATS_SUITE_TEST_NUMBER}" + assert_success + + assert_output --partial "Something-${BATS_SUITE_TEST_NUMBER}" } @test "[$TESTSUITE] Add feed without GUIDs" { - run ./occ news:feed:add "$user" "$NO_GUID_FEED" - [ "$status" -ne 0 ] - - if ! echo "$output" | grep "No parser can handle this stream"; then - ret_status=$? - echo "Malformed feed exception wasn't properly caught" - return $ret_status - fi + run ./occ news:feed:add "$user" "$NO_GUID_FEED" --title "Something-${BATS_SUITE_TEST_NUMBER}" + assert_failure + + assert_output "Malformed feed: item has no GUID" } @test "[$TESTSUITE] List all" { ./occ news:feed:add "$user" "$NC_FEED" --title "Something-${BATS_SUITE_TEST_NUMBER}" run ./occ news:feed:list "$user" - [ "$status" -eq 0 ] - - if ! echo "$output" | grep "Something-${BATS_SUITE_TEST_NUMBER}"; then - ret_status=$? - echo "Feed not found in list" - return $ret_status - fi + assert_success + assert_output --partial "Something-${BATS_SUITE_TEST_NUMBER}" } @test "[$TESTSUITE] Favicon" { @@ -52,65 +43,41 @@ teardown() { ./occ news:feed:add "$user" "$HEISE_FEED" --title "Something-${BATS_SUITE_TEST_NUMBER}" run ./occ news:feed:list "$user" - [ "$status" -eq 0 ] + assert_success - if ! echo "$output" | grep -F '"faviconLink": "https:\/\/nextcloud.com\/media\/screenshot-150x150.png"'; then - ret_status=$? - echo "Logo test failed" - return $ret_status - fi - - if ! echo "$output" | grep -F '"faviconLink": "https:\/\/www.heise.de\/favicon.ico"'; then - ret_status=$? - echo "Favicon test failed" - return $ret_status - fi + assert_output --partial '"faviconLink": "https:\/\/nextcloud.com\/wp-content\/uploads\/2022\/03\/favicon.png",' + assert_output --partial '"faviconLink": "https:\/\/www.heise.de\/favicon.ico?v=JykvN0w9Ye",' } @test "[$TESTSUITE] List all items" { - ./occ news:feed:add "$user" "https://github.com/nextcloud/news/releases.atom" --title "Something-${BATS_SUITE_TEST_NUMBER}" + ID=$(./occ news:feed:add "$user" "https://github.com/nextcloud/news/releases.atom" --title "Something-${BATS_SUITE_TEST_NUMBER}" | grep -Po '"id": \K([0-9]+)') TAG=$(curl --silent "https://api.github.com/repos/nextcloud/news/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') - ID=$(./occ news:feed:list 'admin' | grep 'github\.com' -1 | head -1 | grep -oE '[0-9]*') run ./occ news:item:list-feed "$user" "$ID" --limit 200 - [ "$status" -eq 0 ] + assert_success - if ! echo "$output" | grep "$TAG"; then - ret_status=$? - echo "Release not found in list" - return $ret_status - fi + assert_output --partial $TAG } @test "[$TESTSUITE] Read all" { - ./occ news:feed:add "$user" "$NC_FEED" --title "Something-${BATS_SUITE_TEST_NUMBER}" + ID=$(./occ news:feed:add "$user" "$NC_FEED" --title "Something-${BATS_SUITE_TEST_NUMBER}" | grep -Po '"id": \K([0-9]+)') - run ./occ news:feed:list "$user" - [ "$status" -eq 0 ] - - echo "$output" | grep "Something-${BATS_SUITE_TEST_NUMBER}" - - ID=$(./occ news:feed:list 'admin' | grep "Something-${BATS_SUITE_TEST_NUMBER}" -2 | head -1 | grep -oE '[0-9]*') run ./occ news:feed:read "$user" "$ID" -v - [ "$status" -eq 0 ] - if ! echo "$output" | grep "items as read"; then - ret_status=$? - echo "Feed not read" - return $ret_status - fi + assert_output --partial "items as read" + + # Needed for some reason because the teardown doesn't work after this step. + run ./occ news:feed:delete "$user" "$ID" -v + assert_success } -@test "[$TESTSUITE] Delete all" { - ./occ news:feed:add "$user" "$NC_FEED" --title "Something-${BATS_SUITE_TEST_NUMBER}" +@test "[$TESTSUITE] Delete one" { + ID=$(./occ news:feed:add "$user" "$NC_FEED" --title "Something-${BATS_SUITE_TEST_NUMBER}" | grep -Po '"id": \K([0-9]+)') run ./occ news:feed:list "$user" - [ "$status" -eq 0 ] - - echo "$output" | grep "Something-${BATS_SUITE_TEST_NUMBER}" + assert_success - ID=$(./occ news:feed:list 'admin' | grep "Something-${BATS_SUITE_TEST_NUMBER}" -2 | head -1 | grep -oE '[0-9]*') run ./occ news:feed:delete "$user" "$ID" - [ "$status" -eq 0 ] + assert_success } diff --git a/tests/command/folders.bats b/tests/command/folders.bats index 48b15f05b..2568c13c9 100644 --- a/tests/command/folders.bats +++ b/tests/command/folders.bats @@ -5,10 +5,10 @@ load "helpers/settings" TESTSUITE="Folders" teardown() { - ID=$(./occ news:folder:list 'admin' | grep "Something-${BATS_SUITE_TEST_NUMBER}" -1 | head -1 | grep -oE '[0-9]*') - if [ -n "$ID" ]; then - ./occ news:folder:delete "$user" "$ID" - fi + ID_LIST=($(./occ news:feed:list 'admin' | grep -Po '"id": \K([0-9]+)' | tr '\n' ' ')) + for ID in $ID_LIST; do + ./occ news:feed:delete "$user" "$ID" + done } @test "[$TESTSUITE] Create new" { diff --git a/tests/command/items.bats b/tests/command/items.bats index 8a7111299..ab2fb312c 100644 --- a/tests/command/items.bats +++ b/tests/command/items.bats @@ -1,98 +1,77 @@ #!/usr/bin/env bats -load "helpers/settings" TESTSUITE="Items" setup() { - ./occ news:feed:add "$user" "https://github.com/nextcloud/news/releases.atom" --title "Something-${BATS_SUITE_TEST_NUMBER}" - + load "../test_helper/bats-support/load" + load "../test_helper/bats-assert/load" + load "helpers/settings" TAG=$(curl --silent "https://api.github.com/repos/nextcloud/news/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') - ID=$(./occ news:feed:list 'admin' | grep 'github\.com' -1 | head -1 | grep -oE '[0-9]*') + } -teardown() { - if [ -n "$ID" ]; then +teardown(){ + ID_LIST=($(./occ news:feed:list 'admin' | grep -Po '"id": \K([0-9]+)' | tr '\n' ' ')) + for ID in $ID_LIST; do ./occ news:feed:delete "$user" "$ID" - fi + done } @test "[$TESTSUITE] List 200 items in feed" { + ID=$(./occ news:feed:add "$user" "https://github.com/nextcloud/news/releases.atom" --title "Something-${BATS_SUITE_TEST_NUMBER}" | grep -Po '"id": \K([0-9]+)') run ./occ news:item:list-feed "$user" "$ID" --limit 200 - [ "$status" -eq 0 ] + assert_success - if ! echo "$output" | grep "$TAG"; then - ret_status=$? - echo "Release not found in feed list" - return $ret_status - fi + assert_output --partial $TAG } @test "[$TESTSUITE] List all items in feed" { + ID=$(./occ news:feed:add "$user" "https://github.com/nextcloud/news/releases.atom" --title "Something-${BATS_SUITE_TEST_NUMBER}" | grep -Po '"id": \K([0-9]+)') run ./occ news:item:list-feed "$user" "$ID" --limit 0 - [ "$status" -eq 0 ] + assert_success - if ! echo "$output" | grep "$TAG"; then - ret_status=$? - echo "Release not found in feed list" - return $ret_status - fi + assert_output --partial $TAG } @test "[$TESTSUITE] List 200 items in folder" { + ID=$(./occ news:feed:add "$user" "https://github.com/nextcloud/news/releases.atom" --title "Something-${BATS_SUITE_TEST_NUMBER}" | grep -Po '"id": \K([0-9]+)') run ./occ news:item:list-folder "$user" --limit 200 - [ "$status" -eq 0 ] + assert_success - if ! echo "$output" | grep "$TAG"; then - ret_status=$? - echo "Release not found in folder list" - return $ret_status - fi + assert_output --partial $TAG } @test "[$TESTSUITE] List all items in folder" { + ID=$(./occ news:feed:add "$user" "https://github.com/nextcloud/news/releases.atom" --title "Something-${BATS_SUITE_TEST_NUMBER}" | grep -Po '"id": \K([0-9]+)') run ./occ news:item:list-folder "$user" --limit 0 - [ "$status" -eq 0 ] + assert_success - if ! echo "$output" | grep "$TAG"; then - ret_status=$? - echo "Release not found in folder list" - return $ret_status - fi + assert_output --partial $TAG } @test "[$TESTSUITE] List 200 items" { + ID=$(./occ news:feed:add "$user" "https://github.com/nextcloud/news/releases.atom" --title "Something-${BATS_SUITE_TEST_NUMBER}" | grep -Po '"id": \K([0-9]+)') run ./occ news:item:list "$user" --limit 200 - [ "$status" -eq 0 ] + assert_success - if ! echo "$output" | grep "$TAG"; then - ret_status=$? - echo "Release not found in list" - return $ret_status - fi + assert_output --partial $TAG } @test "[$TESTSUITE] List all items" { + ID=$(./occ news:feed:add "$user" "https://github.com/nextcloud/news/releases.atom" --title "Something-${BATS_SUITE_TEST_NUMBER}" | grep -Po '"id": \K([0-9]+)') run ./occ news:item:list "$user" --limit 0 - [ "$status" -eq 0 ] + assert_success - if ! echo "$output" | grep "$TAG"; then - ret_status=$? - echo "Release not found in list" - return $ret_status - fi + assert_output --partial $TAG } @test "[$TESTSUITE] Test author fallback" { - ./occ news:feed:add "$user" $HEISE_FEED --title "Something-${BATS_SUITE_TEST_NUMBER}" - ID=$(./occ news:feed:list 'admin' | grep 'heise\.de' -1 | head -1 | grep -oE '[0-9]*') + ID=$(./occ news:feed:add "$user" $HEISE_FEED --title "Something-${BATS_SUITE_TEST_NUMBER}" | grep -Po '"id": \K([0-9]+)') run ./occ news:item:list-feed "$user" "$ID" --limit 200 - [ "$status" -eq 0 ] - - if ! echo "$output" | grep '"author": "heise online",'; then - ret_status=$? - echo "Author fallback did not work" - return $ret_status - fi -}
\ No newline at end of file + assert_success + + + assert_output --partial '"author": "heise online",' +} diff --git a/tests/command/opml.bats b/tests/command/opml.bats index b2d576e8e..bfdc8bf93 100644 --- a/tests/command/opml.bats +++ b/tests/command/opml.bats @@ -5,14 +5,14 @@ load "helpers/settings" TESTSUITE="OPML" teardown() { - ID=$(./occ news:feed:list 'admin' | grep "Something-${BATS_SUITE_TEST_NUMBER}" -1 | head -1 | grep -oE '[0-9]*') - if [ -n "$ID" ]; then + ID_LIST=($(./occ news:feed:list 'admin' | grep -Po '"id": \K([0-9]+)' | tr '\n' ' ')) + for ID in $ID_LIST; do ./occ news:feed:delete "$user" "$ID" - fi + done } @test "[$TESTSUITE] Export" { - run ./occ news:feed:add "$user" "https://nextcloud.com/blog/static-feed/" + run ./occ news:feed:add "$user" "https://nextcloud.com/blog/static-feed/" --title "Something-${BATS_SUITE_TEST_NUMBER}" [ "$status" -eq 0 ] run ./occ news:opml:export "$user" |