From 8139488482a3944f8db1bbf4a02601c0374fc9b1 Mon Sep 17 00:00:00 2001 From: Brendan Coles Date: Fri, 22 Apr 2016 02:51:06 +0000 Subject: [PATCH] Add core/extensions test cases --- test/unit/core/tc_extensions.rb | 49 +++++++++++++++++++++++++++++++++ test/unit/ts_unit.rb | 2 ++ 2 files changed, 51 insertions(+) create mode 100644 test/unit/core/tc_extensions.rb diff --git a/test/unit/core/tc_extensions.rb b/test/unit/core/tc_extensions.rb new file mode 100644 index 000000000..20be85498 --- /dev/null +++ b/test/unit/core/tc_extensions.rb @@ -0,0 +1,49 @@ +# +# Copyright (c) 2006-2016 Wade Alcorn - wade@bindshell.net +# Browser Exploitation Framework (BeEF) - http://beefproject.com +# See the file 'doc/COPYING' for copying permission +# +require 'test/unit' + +class TC_Extensions < Test::Unit::TestCase + + def setup + $:.unshift(File.join(File.expand_path(File.dirname(__FILE__)), '.')) + $root_dir = File.expand_path('../../../../', __FILE__) + end + + # + # Test that extensions are loading properly + # + def test_extensions + assert_nothing_raised do + BeEF::Extensions.load + end + + enabled_extensions = BeEF::Core::Configuration.instance.get('beef.extension').select {|k,v| + v['enable'] == true + } + + enabled_extensions.each do |k,v| + assert(v.has_key?('name')) + assert(v.has_key?('enable')) + assert(v.has_key?('loaded')) + end + + enabled_extensions.each do |k,v| + assert(v['loaded'], 'Extension is enabled but was not loaded') + end + end + + def test_safe_client_debug_log + Dir['../../extensions/**/*.js'].each do |path| + next if /extensions\/admin_ui/.match(path) # skip this file + File.open(path) do |f| + f.grep(/\W*console\.log\W*\(/im) do |line| + assert(false, "Function 'console.log' used instead of 'beef.debug' in command module: " + path + ':' + line) + end + end + end + end + +end diff --git a/test/unit/ts_unit.rb b/test/unit/ts_unit.rb index 01dea0465..bd8fc4f63 100644 --- a/test/unit/ts_unit.rb +++ b/test/unit/ts_unit.rb @@ -16,6 +16,7 @@ require './core/tc_core' require './core/tc_api' require './core/tc_bootstrap' require './core/tc_modules' +require './core/tc_extensions' require './core/tc_social_engineering' require './core/tc_autorun' require './core/tc_obfuscation' @@ -44,6 +45,7 @@ class TS_BeefTests suite << TC_Bootstrap.suite suite << TC_Api.suite suite << TC_Modules.suite + suite << TC_Extensions.suite suite << TC_Filesystem.suite suite << TC_Grep.suite suite << TC_SocialEngineering.suite