/
megalinkanalyzer_test.py
53 lines (39 loc) · 1.84 KB
/
megalinkanalyzer_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# -*- coding: utf-8 -*-
import unittest
from unittest import mock
from pastepwn.analyzers.megalinkanalyzer import MegaLinkAnalyzer
class TestMegaLinkAnalyzer(unittest.TestCase):
def setUp(self):
self.analyzer = MegaLinkAnalyzer(None)
self.paste = mock.Mock()
def test_match_positive(self):
"""Test if positives are recognized"""
# working mega link (short version)
self.paste.body = "https://mega.nz/#F!XTQVEAZZ"
self.assertTrue(self.analyzer.match(self.paste))
# working mega link (medium version)
self.paste.body = "https://mega.nz/#F!XTQVEAZZ!eqxlOvTxJKnvAkYvjC0O8g"
self.assertTrue(self.analyzer.match(self.paste))
# working mega link (long version)
self.paste.body = "https://mega.nz/#F!PB8SSawR!SUokSlF2Zy8CR004DNFfNw!LQtniCoa"
self.assertTrue(self.analyzer.match(self.paste))
# without https header
self.paste.body = "mega.nz/#F!XTQVEAZZ!eqxlOvTxJKnvAkYvjC0O8g"
self.assertTrue(self.analyzer.match(self.paste))
# http header
self.paste.body = "http://mega.nz/#F!XTQVEAZZ!eqxlOvTxJKnvAkYvjC0O8g"
self.assertTrue(self.analyzer.match(self.paste))
# in a sentence
self.paste.body = "check out this file:https://mega.nz/#F!PB8SSawR!SUokSlF2Zy8CR004DNFfNw!LQtniCoa"
self.assertTrue(self.analyzer.match(self.paste))
def test_match_negative(self):
"""Test if negatives are not recognized"""
self.paste.body = ""
self.assertFalse(self.analyzer.match(self.paste))
self.paste.body = None
self.assertFalse(self.analyzer.match(self.paste))
# Invalid segment length
self.paste.body = "https://mega.nz/#F!XTQVEAZZ1!eqxlOvTxJKnvAkYvjC0O8g"
self.assertFalse(self.analyzer.match(self.paste))
if __name__ == '__main__':
unittest.main()