Skip to content

Commit

Permalink
Add a test case for a site sending invalid Date HTTP header
Browse files Browse the repository at this point in the history
 - Rename unityhub manifest to be a generic url checker manifest
  • Loading branch information
bbhtt committed Nov 9, 2023
1 parent 09007de commit 698cbd6
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 25 deletions.
9 changes: 0 additions & 9 deletions tests/com.unity.UnityHub.yaml

This file was deleted.

17 changes: 17 additions & 0 deletions tests/fedc.test.urlchecker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
app-id: com.unity.UnityHub
modules:
- name: unityhub
sources:
- type: extra-data
filename: UnityHubSetup.AppImage
url: https://public-cdn.cloud.unity3d.com/hub/prod/UnityHub.AppImage
sha256: "0000000000000000000000000000000000000000000000000000000000000000"
size: 0
- name: cloudmusic
sources:
- type: extra-data
filename: netease-cloud-music.deb
# send invalid date HTTP header with Region/City part
url: http://d1.music.126.net/dmusic/netease-cloud-music_1.1.0_amd64_ubuntu.deb
sha256: "0000000000000000000000000000000000000000000000000000000000000000"
size: 0
36 changes: 20 additions & 16 deletions tests/test_urlchecker.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from src.lib.utils import init_logging
from src.lib.checksums import MultiDigest

TEST_MANIFEST = os.path.join(os.path.dirname(__file__), "com.unity.UnityHub.yaml")
TEST_MANIFEST = os.path.join(os.path.dirname(__file__), "fedc.test.urlchecker.yaml")


class TestURLChecker(unittest.IsolatedAsyncioTestCase):
Expand All @@ -16,21 +16,25 @@ async def test_check(self):
checker = ManifestChecker(TEST_MANIFEST)
ext_data = await checker.check()

data = self._find_by_filename(ext_data, "UnityHubSetup.AppImage")
self.assertIsNotNone(data)
self.assertEqual(data.filename, "UnityHubSetup.AppImage")
self.assertIsNotNone(data.new_version)
self.assertIsInstance(data.new_version.size, int)
self.assertGreater(data.new_version.size, 0)
self.assertIsNotNone(data.new_version.checksum)
self.assertIsInstance(data.new_version.checksum, MultiDigest)
self.assertNotEqual(
data.new_version.checksum,
MultiDigest(
sha256="0000000000000000000000000000000000000000000000000000000000000000"
),
)
self.assertIsNotNone(data.new_version.version)
self.assertEqual(len(ext_data), 2)
for data in ext_data:
self.assertIsNotNone(data)
self.assertIsInstance(data.new_version.size, int)
self.assertGreater(data.new_version.size, 0)
self.assertIsNotNone(data.new_version.checksum)
self.assertIsInstance(data.new_version.checksum, MultiDigest)
self.assertNotEqual(
data.new_version.checksum,
MultiDigest(
sha256="0000000000000000000000000000000000000000000000000000000000000000"
),
)
if data.filename == "UnityHubSetup.AppImage":
self.assertIsNotNone(data.new_version)
self.assertIsNotNone(data.new_version.version)
self.assertEqual(data.filename, "UnityHubSetup.AppImage")
elif data.filename == "netease-cloud-music.deb":
self.assertEqual(data.filename, "netease-cloud-music.deb")

def _find_by_filename(self, ext_data, filename):
for data in ext_data:
Expand Down

0 comments on commit 698cbd6

Please sign in to comment.