예제 #1
0
 def test_comment_missing_everything(self):
     """If a frame is missing everything, do not throw an error."""
     report = self._create_report()
     parsed_dump = self._create_dump(
         threads=[self._create_thread(frames=[
             {},
         ])])
     bugzilla_submit_url(report, parsed_dump, 0, 'Core')
예제 #2
0
 def test_comment_missing_everything(self):
     """If a frame is missing everything, do not throw an error."""
     report = self._create_report()
     parsed_dump = self._create_dump(threads=[
         self._create_thread(frames=[
             {},
         ])
     ])
     bugzilla_submit_url(report, parsed_dump, 0, 'Core')
예제 #3
0
    def test_kwargs(self):
        url = bugzilla_submit_url(foo='?&"', numbers=["one", "two"])
        ok_(url.startswith("https://bugzilla.mozilla.org/enter_bug.cgi?"))
        ok_("format=__default__" in url)
        ok_("foo=%3F%26%22" in url)
        ok_("numbers=one" in url)
        ok_("numbers=two" in url)

        url = bugzilla_submit_url(format="different")
        ok_("format=__default__" not in url)
        ok_("format=different" in url)
예제 #4
0
    def test_kwargs(self):
        url = bugzilla_submit_url(foo='?&"', numbers=['one', 'two'])
        ok_(url.startswith('https://bugzilla.mozilla.org/enter_bug.cgi?'))
        ok_('format=__default__' in url)
        ok_('foo=%3F%26%22' in url)
        ok_('numbers=one' in url)
        ok_('numbers=two' in url)

        url = bugzilla_submit_url(format='different')
        ok_('format=__default__' not in url)
        ok_('format=different' in url)
예제 #5
0
    def test_kwargs(self):
        url = bugzilla_submit_url(foo='?&"', numbers=['one', 'two'])
        ok_(url.startswith('https://bugzilla.mozilla.org/enter_bug.cgi?'))
        ok_('format=__default__' in url)
        ok_('foo=%3F%26%22' in url)
        ok_('numbers=one' in url)
        ok_('numbers=two' in url)

        url = bugzilla_submit_url(format='different')
        ok_('format=__default__' not in url)
        ok_('format=different' in url)
예제 #6
0
    def test_corrected_os_version_name(self):
        report = self._create_report(
            os_name='Windoooosws',
            os_pretty_version='Windows 10',
        )
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                                  self.CRASHING_THREAD, 'Core')
        qs = self._extract_query_string(url)
        assert qs['op_sys'] == ['Windows 10']

        # os_name if the os_pretty_version is there, but empty
        report = self._create_report(
            os_name='Windoooosws',
            os_pretty_version='',
        )
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                                  self.CRASHING_THREAD, 'Core')
        qs = self._extract_query_string(url)
        assert qs['op_sys'] == ['Windoooosws']

        # 'OS X <Number>' becomes 'Mac OS X'
        report = self._create_report(
            os_name='OS X',
            os_pretty_version='OS X 11.1',
        )
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                                  self.CRASHING_THREAD, 'Core')
        qs = self._extract_query_string(url)
        assert qs['op_sys'] == ['Mac OS X']

        # 'Windows 8.1' becomes 'Windows 8'
        report = self._create_report(
            os_name='Windows NT',
            os_pretty_version='Windows 8.1',
        )
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                                  self.CRASHING_THREAD, 'Core')
        qs = self._extract_query_string(url)
        assert qs['op_sys'] == ['Windows 8']

        # 'Windows Unknown' becomes plain 'Windows'
        report = self._create_report(
            os_name='Windows NT',
            os_pretty_version='Windows Unknown',
        )
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                                  self.CRASHING_THREAD, 'Core')
        qs = self._extract_query_string(url)
        assert qs['op_sys'] == ['Windows']
예제 #7
0
 def test_truncate_short_desc(self):
     report = self._create_report(os_name="Windows", signature="x" * 1000)
     url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                               self.CRASHING_THREAD, "Core")
     qs = self._extract_query_string(url)
     assert len(qs["short_desc"][0]) == 255
     assert qs["short_desc"][0].endswith("...")
예제 #8
0
 def test_truncate_short_desc(self):
     report = self._create_report(os_name='Windows', signature='x' * 1000)
     url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                               self.CRASHING_THREAD, 'Core')
     qs = self._extract_query_string(url)
     assert len(qs['short_desc'][0]) == 255
     assert qs['short_desc'][0].endswith('...')
예제 #9
0
    def test_comment_no_threads(self):
        """If parsed_dump has no threads available, do not output any
        frames.

        """
        report = self._create_report()
        url = bugzilla_submit_url(report, {}, 0, "Core")
        assert quote_plus("frames of crashing thread:") not in url
예제 #10
0
    def test_comment_no_threads(self):
        """If parsed_dump has no threads available, do not output any
        frames.

        """
        report = self._create_report()
        url = bugzilla_submit_url(report, {}, 0, 'Core')
        assert quote_plus('frames of crashing thread:') not in url
예제 #11
0
 def test_truncate_short_desc(self):
     report = self._create_report(
         os_name='Windows',
         signature='x' * 1000
     )
     url = bugzilla_submit_url(report, 'Core')
     qs = self._extract_query_string(url)
     eq_(len(qs['short_desc'][0]), 255)
     ok_(qs['short_desc'][0].endswith('...'))
예제 #12
0
 def test_truncate_short_desc(self):
     report = self._create_report(
         os_name='Windows',
         signature='x' * 1000
     )
     url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP, self.CRASHING_THREAD, 'Core')
     qs = self._extract_query_string(url)
     assert len(qs['short_desc'][0]) == 255
     assert qs['short_desc'][0].endswith('...')
예제 #13
0
 def test_with_os_name_is_null(self):
     """Some processed crashes haev a os_name but it's null.
     FennecAndroid crashes for example."""
     report = self._create_report(
         os_name=None, signature="java.lang.IllegalStateException")
     url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                               self.CRASHING_THREAD, "Core")
     qs = self._extract_query_string(url)
     assert "op_sys" not in qs
예제 #14
0
    def test_corrected_os_version_name(self):
        report = self._create_report(
            os_name='Windoooosws',
            os_pretty_version='Windows 10',
        )
        url = bugzilla_submit_url(report, 'Core')
        qs = self._extract_query_string(url)
        eq_(qs['op_sys'], ['Windows 10'])

        # os_name if the os_pretty_version is there, but empty
        report = self._create_report(
            os_name='Windoooosws',
            os_pretty_version='',
        )
        url = bugzilla_submit_url(report, 'Core')
        qs = self._extract_query_string(url)
        eq_(qs['op_sys'], ['Windoooosws'])

        # 'OS X <Number>' becomes 'Mac OS X'
        report = self._create_report(
            os_name='OS X',
            os_pretty_version='OS X 11.1',
        )
        url = bugzilla_submit_url(report, 'Core')
        qs = self._extract_query_string(url)
        eq_(qs['op_sys'], ['Mac OS X'])

        # 'Windows 8.1' becomes 'Windows 8'
        report = self._create_report(
            os_name='Windows NT',
            os_pretty_version='Windows 8.1',
        )
        url = bugzilla_submit_url(report, 'Core')
        qs = self._extract_query_string(url)
        eq_(qs['op_sys'], ['Windows 8'])

        # 'Windows Unknown' becomes plain 'Windows'
        report = self._create_report(
            os_name='Windows NT',
            os_pretty_version='Windows Unknown',
        )
        url = bugzilla_submit_url(report, 'Core')
        qs = self._extract_query_string(url)
        eq_(qs['op_sys'], ['Windows'])
예제 #15
0
    def test_corrected_os_version_name(self):
        report = self._create_report(
            os_name='Windoooosws',
            os_pretty_version='Windows 10',
        )
        url = bugzilla_submit_url(report, 'Core')
        qs = self._extract_query_string(url)
        eq_(qs['op_sys'], ['Windows 10'])

        # os_name if the os_pretty_version is there, but empty
        report = self._create_report(
            os_name='Windoooosws',
            os_pretty_version='',
        )
        url = bugzilla_submit_url(report, 'Core')
        qs = self._extract_query_string(url)
        eq_(qs['op_sys'], ['Windoooosws'])

        # 'OS X <Number>' becomes 'Mac OS X'
        report = self._create_report(
            os_name='OS X',
            os_pretty_version='OS X 11.1',
        )
        url = bugzilla_submit_url(report, 'Core')
        qs = self._extract_query_string(url)
        eq_(qs['op_sys'], ['Mac OS X'])

        # 'Windows 8.1' becomes 'Windows 8'
        report = self._create_report(
            os_name='Windows NT',
            os_pretty_version='Windows 8.1',
        )
        url = bugzilla_submit_url(report, 'Core')
        qs = self._extract_query_string(url)
        eq_(qs['op_sys'], ['Windows 8'])

        # 'Windows Unknown' becomes plain 'Windows'
        report = self._create_report(
            os_name='Windows NT',
            os_pretty_version='Windows Unknown',
        )
        url = bugzilla_submit_url(report, 'Core')
        qs = self._extract_query_string(url)
        eq_(qs['op_sys'], ['Windows'])
예제 #16
0
    def test_corrected_os_version_name(self):
        report = self._create_report(
            os_name='Windoooosws',
            os_pretty_version='Windows 10',
        )
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP, self.CRASHING_THREAD, 'Core')
        qs = self._extract_query_string(url)
        assert qs['op_sys'] == ['Windows 10']

        # os_name if the os_pretty_version is there, but empty
        report = self._create_report(
            os_name='Windoooosws',
            os_pretty_version='',
        )
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP, self.CRASHING_THREAD, 'Core')
        qs = self._extract_query_string(url)
        assert qs['op_sys'] == ['Windoooosws']

        # 'OS X <Number>' becomes 'Mac OS X'
        report = self._create_report(
            os_name='OS X',
            os_pretty_version='OS X 11.1',
        )
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP, self.CRASHING_THREAD, 'Core')
        qs = self._extract_query_string(url)
        assert qs['op_sys'] == ['Mac OS X']

        # 'Windows 8.1' becomes 'Windows 8'
        report = self._create_report(
            os_name='Windows NT',
            os_pretty_version='Windows 8.1',
        )
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP, self.CRASHING_THREAD, 'Core')
        qs = self._extract_query_string(url)
        assert qs['op_sys'] == ['Windows 8']

        # 'Windows Unknown' becomes plain 'Windows'
        report = self._create_report(
            os_name='Windows NT',
            os_pretty_version='Windows Unknown',
        )
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP, self.CRASHING_THREAD, 'Core')
        qs = self._extract_query_string(url)
        assert qs['op_sys'] == ['Windows']
예제 #17
0
 def test_with_os_name_is_null(self):
     """Some processed crashes haev a os_name but it's null.
     FennecAndroid crashes for example."""
     report = self._create_report(
         os_name=None,
         signature='java.lang.IllegalStateException',
     )
     url = bugzilla_submit_url(report, 'Core')
     qs = self._extract_query_string(url)
     ok_('op_sys' not in qs)
예제 #18
0
 def test_with_os_name_is_null(self):
     """Some processed crashes haev a os_name but it's null.
     FennecAndroid crashes for example."""
     report = self._create_report(
         os_name=None,
         signature='java.lang.IllegalStateException',
     )
     url = bugzilla_submit_url(report, 'Core')
     qs = self._extract_query_string(url)
     ok_('op_sys' not in qs)
예제 #19
0
    def test_comment_more_than_ten_frames(self):
        """If the crashing thread has more than ten frames, only display
        the top ten.

        """
        report = self._create_report()
        parsed_dump = self._create_dump(threads=[
            self._create_thread(frames=[self._create_frame(frame=frame) for frame in range(10)] + [
                self._create_frame(frame=10, module='do_not_include')
            ])
        ])
        url = bugzilla_submit_url(report, parsed_dump, 0, 'Core')
        assert quote_plus('do_not_include') not in url
예제 #20
0
    def test_comment_more_than_ten_frames(self):
        """If the crashing thread has more than ten frames, only display
        the top ten.

        """
        report = self._create_report()
        parsed_dump = self._create_dump(threads=[
            self._create_thread(frames=[
                self._create_frame(frame=frame) for frame in range(10)
            ] + [self._create_frame(frame=10, module="do_not_include")])
        ])
        url = bugzilla_submit_url(report, parsed_dump, 0, "Core")
        assert quote_plus("do_not_include") not in url
예제 #21
0
    def test_corrected_os_version_name(self):
        report = self._create_report(os_name="Windoooosws",
                                     os_pretty_version="Windows 10")
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                                  self.CRASHING_THREAD, "Core")
        qs = self._extract_query_string(url)
        assert qs["op_sys"] == ["Windows 10"]

        # os_name if the os_pretty_version is there, but empty
        report = self._create_report(os_name="Windoooosws",
                                     os_pretty_version="")
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                                  self.CRASHING_THREAD, "Core")
        qs = self._extract_query_string(url)
        assert qs["op_sys"] == ["Windoooosws"]

        # 'OS X <Number>' becomes 'Mac OS X'
        report = self._create_report(os_name="OS X",
                                     os_pretty_version="OS X 11.1")
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                                  self.CRASHING_THREAD, "Core")
        qs = self._extract_query_string(url)
        assert qs["op_sys"] == ["Mac OS X"]

        # 'Windows 8.1' becomes 'Windows 8'
        report = self._create_report(os_name="Windows NT",
                                     os_pretty_version="Windows 8.1")
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                                  self.CRASHING_THREAD, "Core")
        qs = self._extract_query_string(url)
        assert qs["op_sys"] == ["Windows 8"]

        # 'Windows Unknown' becomes plain 'Windows'
        report = self._create_report(os_name="Windows NT",
                                     os_pretty_version="Windows Unknown")
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                                  self.CRASHING_THREAD, "Core")
        qs = self._extract_query_string(url)
        assert qs["op_sys"] == ["Windows"]
예제 #22
0
 def test_basic_url(self):
     report = self._create_report(os_name='Windows')
     url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP, self.CRASHING_THREAD, 'Plugin')
     assert url.startswith('https://bugzilla.mozilla.org/enter_bug.cgi?')
     qs = self._extract_query_string(url)
     assert '00000000-0000-0000-0000-000000000000' in qs['comment'][0]
     assert qs['cf_crash_signature'] == ['[@ $&#;deadbeef]']
     assert qs['format'] == ['__default__']
     assert qs['product'] == ['Plugin']
     assert qs['rep_platform'] == ['x86']
     assert qs['short_desc'] == ['Crash in $&#;deadbeef']
     assert qs['keywords'] == ['crash']
     assert qs['op_sys'] == ['Windows']
     assert qs['bug_severity'] == ['critical']
예제 #23
0
    def test_with_unicode_signature(self):
        """The jinja helper bugzilla_submit_url should work when
        the signature contains non-ascii characters.

        Based on an actual error in production:
        https://bugzilla.mozilla.org/show_bug.cgi?id=1383269
        """
        report = self._create_report(
            os_name=None,
            signature=u'YouTube\u2122 No Buffer (Stop Auto-playing)',
        )
        url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP, self.CRASHING_THREAD, 'Core')
        # Most important that it should work
        assert 'Crash+in+%5B%40+YouTube%E2%84%A2+No+Buffer+%28Stop+Auto-playing%29%5D' in url
예제 #24
0
    def test_with_unicode_signature(self):
        """The jinja helper bugzilla_submit_url should work when
        the signature contains non-ascii characters.

        Based on an actual error in production:
        https://bugzilla.mozilla.org/show_bug.cgi?id=1383269
        """
        report = self._create_report(
            os_name=None,
            signature=u'YouTube\u2122 No Buffer (Stop Auto-playing)',
        )
        url = bugzilla_submit_url(report, 'Core')
        # Most important that it should work
        ok_('Crash+in+YouTube%E2%84%A2+No+Buffer+%28Stop+Auto-playing' in url)
예제 #25
0
 def test_basic_url(self):
     report = self._create_report(os_name='Windows')
     url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP, self.CRASHING_THREAD, 'Plugin')
     assert url.startswith('https://bugzilla.mozilla.org/enter_bug.cgi?')
     qs = self._extract_query_string(url)
     assert '00000000-0000-0000-0000-000000000000' in qs['comment'][0]
     assert qs['cf_crash_signature'] == ['[@ $&#;deadbeef]']
     assert qs['format'] == ['__default__']
     assert qs['product'] == ['Plugin']
     assert qs['rep_platform'] == ['x86']
     assert qs['short_desc'] == ['Crash in [@ $&#;deadbeef]']
     assert qs['keywords'] == ['crash']
     assert qs['op_sys'] == ['Windows']
     assert qs['bug_severity'] == ['critical']
예제 #26
0
 def test_basic_url(self):
     report = self._create_report(os_name='Windows')
     url = bugzilla_submit_url(report, 'Plugin')
     ok_(url.startswith('https://bugzilla.mozilla.org/enter_bug.cgi?'))
     qs = self._extract_query_string(url)
     ok_('00000000-0000-0000-0000-000000000000' in qs['comment'][0])
     eq_(qs['cf_crash_signature'], ['[@ $&#;deadbeef]'])
     eq_(qs['format'], ['__default__'])
     eq_(qs['product'], ['Plugin'])
     eq_(qs['rep_platform'], ['x86'])
     eq_(qs['short_desc'], ['Crash in $&#;deadbeef'])
     eq_(qs['keywords'], ['crash'])
     eq_(qs['op_sys'], ['Windows'])
     eq_(qs['bug_severity'], ['critical'])
예제 #27
0
 def test_basic_url(self):
     report = self._create_report(os_name="Windows")
     url = bugzilla_submit_url(report, self.EMPTY_PARSED_DUMP,
                               self.CRASHING_THREAD, "Plugin")
     assert url.startswith("https://bugzilla.mozilla.org/enter_bug.cgi?")
     qs = self._extract_query_string(url)
     assert "00000000-0000-0000-0000-000000000000" in qs["comment"][0]
     assert qs["cf_crash_signature"] == ["[@ $&#;deadbeef]"]
     assert qs["format"] == ["__default__"]
     assert qs["product"] == ["Plugin"]
     assert qs["rep_platform"] == ["x86"]
     assert qs["short_desc"] == ["Crash in [@ $&#;deadbeef]"]
     assert qs["keywords"] == ["crash"]
     assert qs["op_sys"] == ["Windows"]
     assert qs["bug_type"] == ["defect"]
예제 #28
0
 def test_comment_missing_file(self):
     """If a frame is missing file info, do not include it."""
     report = self._create_report()
     parsed_dump = self._create_dump(threads=[
         self._create_thread(frames=[
             self._create_frame(
                 frame=0,
                 module="test_module",
                 signature="foo::bar(char* x, int y)",
                 file=None,
                 line=None,
             )
         ])
     ])
     url = bugzilla_submit_url(report, parsed_dump, 0, "Core")
     assert quote_plus("0 test_module foo::bar \n") in url
예제 #29
0
 def test_comment_missing_line(self):
     """If a frame is missing a line number, do not include it."""
     report = self._create_report()
     parsed_dump = self._create_dump(threads=[
         self._create_thread(frames=[
             self._create_frame(
                 frame=0,
                 module='test_module',
                 signature='foo::bar(char* x, int y)',
                 file='foo.cpp',
                 line=None,
             ),
         ])
     ])
     url = bugzilla_submit_url(report, parsed_dump, 0, 'Core')
     assert quote_plus('0 test_module foo::bar foo.cpp\n') in url
예제 #30
0
 def test_comment_missing_file(self):
     """If a frame is missing file info, do not include it."""
     report = self._create_report()
     parsed_dump = self._create_dump(threads=[
         self._create_thread(frames=[
             self._create_frame(
                 frame=0,
                 module='test_module',
                 signature='foo::bar(char* x, int y)',
                 file=None,
                 line=None,
             ),
         ])
     ])
     url = bugzilla_submit_url(report, parsed_dump, 0, 'Core')
     assert quote_plus('0 test_module foo::bar \n') in url
예제 #31
0
    def test_comment(self):
        report = self._create_report()
        parsed_dump = self._create_dump(threads=[
            self._create_thread(),  # Empty thread 0
            self._create_thread(frames=[
                self._create_frame(frame=0),
                self._create_frame(frame=1),
                self._create_frame(frame=2),
            ]),
        ])
        url = bugzilla_submit_url(report, parsed_dump, 1, 'Core')

        assert quote_plus('bp-' + report['uuid']) in url
        assert quote_plus('Top 3 frames of crashing thread:') in url

        frame1 = parsed_dump['threads'][1]['frames'][1]
        assert quote_plus('1 {module} {signature} {file}:{line}'.format(**frame1)) in url
예제 #32
0
    def test_comment(self):
        report = self._create_report()
        parsed_dump = self._create_dump(threads=[
            self._create_thread(),  # Empty thread 0
            self._create_thread(frames=[
                self._create_frame(frame=0),
                self._create_frame(frame=1),
                self._create_frame(frame=2),
            ]),
        ])
        url = bugzilla_submit_url(report, parsed_dump, 1, 'Core')

        assert quote_plus('bp-' + report['uuid']) in url
        assert quote_plus('Top 3 frames of crashing thread:') in url

        frame1 = parsed_dump['threads'][1]['frames'][1]
        assert quote_plus('1 {module} {signature} {file}:{line}'.format(**frame1)) in url
예제 #33
0
    def test_comment_java_stack_trace(self):
        """If there's a java stack trace, use that instead"""
        report = self._create_report()
        report['java_stack_trace'] = 'java.lang.NullPointerException: list == null'
        parsed_dump = self._create_dump(threads=[
            self._create_thread(),  # Empty thread 0
            self._create_thread(frames=[
                self._create_frame(frame=0),
                self._create_frame(frame=1),
                self._create_frame(frame=2),
            ]),
        ])
        url = bugzilla_submit_url(report, parsed_dump, 0, 'Core')
        assert quote_plus('Java stack trace:') in url
        assert quote_plus('java.lang.NullPointerException: list == null') in url

        # Make sure it didn't also add the crashing frames
        assert quote_plus('frames of crashing thread:') not in url
예제 #34
0
    def test_comment(self):
        report = self._create_report()
        parsed_dump = self._create_dump(threads=[
            self._create_thread(),  # Empty thread 0
            self._create_thread(frames=[
                self._create_frame(frame=0),
                self._create_frame(frame=1),
                self._create_frame(frame=2),
            ]),
        ])
        url = bugzilla_submit_url(report, parsed_dump, 1, "Core")

        assert quote_plus("bp-" + report["uuid"]) in url
        assert quote_plus("Top 3 frames of crashing thread:") in url

        frame1 = parsed_dump["threads"][1]["frames"][1]
        assert (quote_plus(
            "1 {module} {signature} {file}:{line}".format(**frame1)) in url)
예제 #35
0
    def test_comment_java_stack_trace(self):
        """If there's a java stack trace, use that instead"""
        report = self._create_report()
        report['java_stack_trace'] = 'java.lang.NullPointerException: list == null'
        parsed_dump = self._create_dump(threads=[
            self._create_thread(),  # Empty thread 0
            self._create_thread(frames=[
                self._create_frame(frame=0),
                self._create_frame(frame=1),
                self._create_frame(frame=2),
            ]),
        ])
        url = bugzilla_submit_url(report, parsed_dump, 0, 'Core')
        assert quote_plus('Java stack trace:') in url
        assert quote_plus('java.lang.NullPointerException: list == null') in url

        # Make sure it didn't also add the crashing frames
        assert quote_plus('frames of crashing thread:') not in url
예제 #36
0
    def test_comment_no_html_escaping(self):
        """If a frame contains <, >, &, or ", they should not be HTML
        escaped in the comment body.

        """
        report = self._create_report()
        parsed_dump = self._create_dump(threads=[
            self._create_thread(frames=[
                self._create_frame(
                    frame=0,
                    module="&test_module",
                    signature="foo<char>::bar(char* x, int y)",
                    file='"foo".cpp',
                    line=7,
                )
            ])
        ])
        url = bugzilla_submit_url(report, parsed_dump, 0, "Core")
        assert quote_plus('0 &test_module foo<char>::bar "foo".cpp:7') in url
예제 #37
0
    def test_comment_remove_arguments(self):
        """If a frame signature includes function arguments, remove
        them.

        """
        report = self._create_report()
        parsed_dump = self._create_dump(threads=[
            self._create_thread(frames=[
                self._create_frame(
                    frame=0,
                    module="test_module",
                    signature="foo::bar(char* x, int y)",
                    file="foo.cpp",
                    line=7,
                )
            ])
        ])
        url = bugzilla_submit_url(report, parsed_dump, 0, "Core")
        assert quote_plus("0 test_module foo::bar foo.cpp:7") in url
예제 #38
0
    def test_comment_remove_arguments(self):
        """If a frame signature includes function arguments, remove
        them.

        """
        report = self._create_report()
        parsed_dump = self._create_dump(threads=[
            self._create_thread(frames=[
                self._create_frame(
                    frame=0,
                    module='test_module',
                    signature='foo::bar(char* x, int y)',
                    file='foo.cpp',
                    line=7,
                ),
            ])
        ])
        url = bugzilla_submit_url(report, parsed_dump, 0, 'Core')
        assert quote_plus('0 test_module foo::bar foo.cpp:7') in url
예제 #39
0
    def test_comment_no_html_escaping(self):
        """If a frame contains <, >, &, or ", they should not be HTML
        escaped in the comment body.

        """
        report = self._create_report()
        parsed_dump = self._create_dump(threads=[
            self._create_thread(frames=[
                self._create_frame(
                    frame=0,
                    module='&test_module',
                    signature='foo<char>::bar(char* x, int y)',
                    file='"foo".cpp',
                    line=7,
                ),
            ])
        ])
        url = bugzilla_submit_url(report, parsed_dump, 0, 'Core')
        assert quote_plus('0 &test_module foo<char>::bar "foo".cpp:7') in url
예제 #40
0
 def test_truncate_certain_keys(self):
     url = bugzilla_submit_url(short_desc="x" * 1000)
     ok_("x" * 1000 not in url)
     ok_("x" * (255 - 3) + "..." in url)
예제 #41
0
 def test_truncate_certain_keys(self):
     url = bugzilla_submit_url(short_desc='x' * 1000)
     ok_('x' * 1000 not in url)
     ok_('x' * (255 - 3) + '...' in url)
예제 #42
0
 def test_basic_url(self):
     url = bugzilla_submit_url()
     eq_(url, "https://bugzilla.mozilla.org/enter_bug.cgi?format=__default__")
예제 #43
0
 def test_basic_url(self):
     url = bugzilla_submit_url()
     eq_(url,
         'https://bugzilla.mozilla.org/enter_bug.cgi?format=__default__')
예제 #44
0
 def test_truncate_certain_keys(self):
     url = bugzilla_submit_url(short_desc='x' * 1000)
     ok_('x' * 1000 not in url)
     ok_('x' * (255 - 3) + '...' in url)
예제 #45
0
 def test_truncate_short_desc(self):
     report = self._create_report(os_name='Windows', signature='x' * 1000)
     url = bugzilla_submit_url(report, 'Core')
     qs = self._extract_query_string(url)
     eq_(len(qs['short_desc'][0]), 255)
     ok_(qs['short_desc'][0].endswith('...'))