# Path: moth/views/base/html_template_view.py
# class HTMLTemplateView(VulnerableTemplateView):
#     '''
#     All vulnerabilities inherit from this template, which will render the data
#     returned by the subclasses, disable anti-CSRF, etc.
#     '''
#     # If the subclass just wants to return static HTML, we give him a shortcut
#     # where he doesn't define the get method, just sets HTML and we'll do the
#     # rest
#     HTML = None
# 
#     def get(self, request, *args, **kwds):
#         if self.HTML is None:
#             raise RuntimeError('HTML needs to be set.')
#         
#         context = self.get_context_data()
#         context['html'] = self.HTML
# 
#         response = render(request, self.template_name, context)
# 
#         for key, value in self.extra_headers.iteritems():
#             response[key] = value
# 
#         return response


from moth.views.base.html_template_view import HTMLTemplateView


class CrossDomainMixed(HTMLTemplateView):
    title = 'Cross Domain JavaScript (mixed)'
    description = 'Mixed javascript, same domain and external.'
    url_path = 'cross_domain_script_mixed.html'
    
    HTML = '''
    <html>
            <script src="http://moth/foo.js"></script>
            <script src="http://www.w3af.org/foo.js"></script>
            <script src="/foo.js"></script>
    </html>
    '''


class CrossDomainLocal(HTMLTemplateView):
    title = 'Cross Domain JavaScript (same domain)'
    description = 'Javascript from the same domain'
    url_path = 'local_script.html'
    false_positive_check = True
    
    HTML = '''
    <html>
        <script src="/foo.js"></script>

# Path: moth/views/base/html_template_view.py
# class HTMLTemplateView(VulnerableTemplateView):
#     '''
#     All vulnerabilities inherit from this template, which will render the data
#     returned by the subclasses, disable anti-CSRF, etc.
#     '''
#     # If the subclass just wants to return static HTML, we give him a shortcut
#     # where he doesn't define the get method, just sets HTML and we'll do the
#     # rest
#     HTML = None
# 
#     def get(self, request, *args, **kwds):
#         if self.HTML is None:
#             raise RuntimeError('HTML needs to be set.')
#         
#         context = self.get_context_data()
#         context['html'] = self.HTML
# 
#         response = render(request, self.template_name, context)
# 
#         for key, value in self.extra_headers.iteritems():
#             response[key] = value
# 
#         return response


# Path: moth/views/vulnerabilities/grep/cross_domain_js.py
from moth.views.base.html_template_view import HTMLTemplateView



class CrossDomainMixed(HTMLTemplateView):
    title = 'Cross Domain JavaScript (mixed)'
    description = 'Mixed javascript, same domain and external.'
    url_path = 'cross_domain_script_mixed.html'
    
    HTML = '''
    <html>
            <script src="http://moth/foo.js"></script>
            <script src="http://www.w3af.org/foo.js"></script>
            <script src="/foo.js"></script>
    </html>
    '''


class CrossDomainLocal(HTMLTemplateView):
    title = 'Cross Domain JavaScript (same domain)'
    description = 'Javascript from the same domain'
    url_path = 'local_script.html'
    false_positive_check = True
    
    HTML = '''
    <html>
        <script src="/foo.js"></script>

    </html>