diff --git a/test/unit/core/main/models/tc_browserdetails.rb b/test/unit/core/main/models/tc_browserdetails.rb new file mode 100644 index 000000000..03f3ca755 --- /dev/null +++ b/test/unit/core/main/models/tc_browserdetails.rb @@ -0,0 +1,54 @@ +# +# Copyright (c) 2006-2017 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_BrowserDetails < Test::Unit::TestCase + + def setup + $:.unshift(File.join(File.expand_path(File.dirname(__FILE__)), '.')) + $root_dir = File.expand_path('../../../../', __FILE__) + + @session = (0...10).map { ('a'..'z').to_a[rand(26)] }.join + end + + def shutdown + $root_dir = nil + end + + # Connects to in-memory database (does not test anything) + def test_01_database + DataMapper.setup(:default, 'sqlite3::memory:') + DataMapper.auto_migrate! + end + + # Tests nil key value returns empty string + def test_02_set_nil_values + key_value = nil + BeEF::Core::Models::BrowserDetails.set(@session, 'key_with_nil_value', key_value).to_s + assert_equal '', BeEF::Core::Models::BrowserDetails.get(@session, 'key_with_nil_valule').to_s + end + + # Tests get/set browser details + def test_03_set_browser_details + key_name = (0...10).map { ('a'..'z').to_a[rand(26)] }.join + key_value = (0...10).map { ('a'..'z').to_a[rand(26)] }.join + BeEF::Core::Models::BrowserDetails.set(@session, key_name, key_value).to_s + assert_equal key_value, BeEF::Core::Models::BrowserDetails.get(@session, key_name).to_s + end + + # Tests updating browser details + def test_04_update_browser_details + key_name = (0...10).map { ('a'..'z').to_a[rand(26)] }.join + + key_value = (0...10).map { ('a'..'z').to_a[rand(26)] }.join + BeEF::Core::Models::BrowserDetails.set(@session, key_name, key_value).to_s + assert_equal key_value, BeEF::Core::Models::BrowserDetails.get(@session, key_name).to_s + + key_value = (0...10).map { ('a'..'z').to_a[rand(26)] }.join + BeEF::Core::Models::BrowserDetails.set(@session, key_name, key_value).to_s + assert_equal key_value, BeEF::Core::Models::BrowserDetails.get(@session, key_name).to_s + end +end diff --git a/test/unit/ts_unit.rb b/test/unit/ts_unit.rb index 12daa0be9..a399f7373 100644 --- a/test/unit/ts_unit.rb +++ b/test/unit/ts_unit.rb @@ -21,6 +21,7 @@ require './core/tc_social_engineering' require './core/tc_autorun' require './core/tc_obfuscation' require './core/tc_logger' +require './core/main/models/tc_browserdetails' require './extensions/tc_xssrays' require './extensions/tc_ipec_tunnel' require './extensions/tc_hooks' @@ -60,6 +61,7 @@ class TS_BeefTests suite << TC_Network.suite suite << TC_Qrcode.suite suite << TC_Hooks.suite + suite << TC_BrowserDetails.suite suite << TC_Redirector.suite suite << TC_DynamicReconstruction.suite suite << TC_Console.suite