var baseName = "jstests_auth_auth_options"; load('jstests/libs/command_line/test_parsed_options.js'); jsTest.log("Testing \"auth\" command line option"); var expectedResult = { "parsed" : { "security" : { "authorization" : "enabled" } } }; testGetCmdLineOptsMongod({ auth : "" }, expectedResult); jsTest.log("Testing \"noauth\" command line option"); expectedResult = { "parsed" : { "security" : { "authorization" : "disabled" } } }; testGetCmdLineOptsMongod({ noauth : "" }, expectedResult); jsTest.log("Testing \"security.authorization\" config file option"); expectedResult = { "parsed" : { "config" : "jstests/libs/config_files/enable_auth.json", "security" : { "authorization" : "enabled" } } }; testGetCmdLineOptsMongod({ config : "jstests/libs/config_files/enable_auth.json" }, expectedResult); jsTest.log("Testing with no explicit object check setting"); expectedResult = { "parsed" : { } }; testGetCmdLineOptsMongod({}, expectedResult); // Test that we preserve switches explicitly set to false in config files. See SERVER-13439. jsTest.log("Testing explicitly disabled \"auth\" config file option"); expectedResult = { "parsed" : { "config" : "jstests/libs/config_files/disable_auth.ini", "security" : { "authorization" : "disabled" } } }; testGetCmdLineOptsMongod({ config : "jstests/libs/config_files/disable_auth.ini" }, expectedResult); jsTest.log("Testing explicitly disabled \"noauth\" config file option"); expectedResult = { "parsed" : { "config" : "jstests/libs/config_files/disable_noauth.ini", "security" : { "authorization" : "enabled" } } }; testGetCmdLineOptsMongod({ config : "jstests/libs/config_files/disable_noauth.ini" }, expectedResult); print(baseName + " succeeded.");