Module:Sensitive IP addresses/blocktext/testcases: Difference between revisions
Appearance
Content deleted Content added
add tests for fetchSensitivityData |
make ipData local |
||
Line 74: | Line 74: | ||
function suite:test_fetch_sensitivity_data_for_us_senate_ip() |
function suite:test_fetch_sensitivity_data_for_us_senate_ip() |
||
ipData = fetchSensitivityData('156.33.0.1') |
local ipData = fetchSensitivityData('156.33.0.1') |
||
self:assertEquals('ussenate', ipData.matches[1]['entity-id']) |
self:assertEquals('ussenate', ipData.matches[1]['entity-id']) |
||
self:assertEquals('156.33.0.1', ipData.matches[1].ip) |
self:assertEquals('156.33.0.1', ipData.matches[1].ip) |
||
Line 82: | Line 82: | ||
function suite:test_fetch_sensitivity_data_for_us_senate_range() |
function suite:test_fetch_sensitivity_data_for_us_senate_range() |
||
ipData = fetchSensitivityData('156.33.0.0/24') |
local ipData = fetchSensitivityData('156.33.0.0/24') |
||
self:assertEquals('ussenate', ipData.matches[1]['entity-id']) |
self:assertEquals('ussenate', ipData.matches[1]['entity-id']) |
||
self:assertEquals('156.33.0.0/24', ipData.matches[1].range) |
self:assertEquals('156.33.0.0/24', ipData.matches[1].range) |
||
Line 90: | Line 90: | ||
function suite:test_fetch_sensitivity_data_for_wmf_ip() |
function suite:test_fetch_sensitivity_data_for_wmf_ip() |
||
ipData = fetchSensitivityData('185.15.56.1') |
local ipData = fetchSensitivityData('185.15.56.1') |
||
self:assertEquals('wmf', ipData.matches[1]['entity-id']) |
self:assertEquals('wmf', ipData.matches[1]['entity-id']) |
||
self:assertEquals('185.15.56.1', ipData.matches[1].ip) |
self:assertEquals('185.15.56.1', ipData.matches[1].ip) |
||
Line 98: | Line 98: | ||
function suite:test_fetch_sensitivity_data_for_private_ip() |
function suite:test_fetch_sensitivity_data_for_private_ip() |
||
ipData = fetchSensitivityData('10.0.0.1') |
local ipData = fetchSensitivityData('10.0.0.1') |
||
self:assertEquals(0, #ipData.matches) |
self:assertEquals(0, #ipData.matches) |
||
end |
end |
||
return suite |
return suite |
Revision as of 09:01, 8 October 2018
![]() | This is the test cases page for the module Module:Sensitive IP addresses/blocktext. Results of the test cases. |
-- Unit tests for [[Module:Sensitive IP addresses/blocktext]]
local mBlockText = require('Module:Sensitive IP addresses/blocktext')
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
local mBlockTextFunctions = mBlockText._exportFunctions()
local parseTitle = mBlockTextFunctions.parseTitle
local fetchSensitivityData = mBlockTextFunctions.fetchSensitivityData
-------------------------------------------------------------------------------
-- parseTitle tests
-------------------------------------------------------------------------------
function suite:test_parse_special_block_with_ipv4_address()
self:assertEquals(
'1.2.3.4',
parseTitle(mw.title.new('Special:Block/1.2.3.4'))
)
end
function suite:test_parse_special_block_with_ipv4_range()
self:assertEquals(
'1.2.3.0/24',
parseTitle(mw.title.new('Special:Block/1.2.3.0/24'))
)
end
function suite:test_parse_special_block_with_ipv6_address()
self:assertEquals(
'2001:db8::ff00:12:3456',
parseTitle(mw.title.new('Special:Block/2001:db8::ff00:12:3456'))
)
end
function suite:test_parse_special_block_with_ipv6_range()
self:assertEquals(
'2001:db8::ff00:12:0/122',
parseTitle(mw.title.new('Special:Block/2001:db8::ff00:12:0/122'))
)
end
function suite:test_parse_special_block_with_username()
self:assertEquals(
nil,
parseTitle(mw.title.new('Special:Block/Example'))
)
end
function suite:test_parse_special_block_with_non_normalized_ipv6_address()
self:assertEquals(
'2001:db8::ff00:12:3456',
parseTitle(mw.title.new('Special:Block/2001:db8:0:0::ff00:12:3456'))
)
end
function suite:test_parse_special_block_with_invalid_ipv4_address()
self:assertEquals(
nil,
parseTitle(mw.title.new('Special:Block/1.2.3.256'))
)
end
-------------------------------------------------------------------------------
-- fetchSensitivityData tests
--
-- Here we test against the live sensitivity data, which means that changes to
-- that module could make these tests fail. This is bad for isolation but a
-- good quick check that the interface is working. To reduce the chance of test
-- failures because of data changes, only test one or two items, only test the
-- items that are least likely to change, and only test the data points that we
-- need.
-------------------------------------------------------------------------------
function suite:test_fetch_sensitivity_data_for_us_senate_ip()
local ipData = fetchSensitivityData('156.33.0.1')
self:assertEquals('ussenate', ipData.matches[1]['entity-id'])
self:assertEquals('156.33.0.1', ipData.matches[1].ip)
self:assertTrue(ipData.entities.ussenate.description:find('Senate'))
self:assertEquals('political', ipData.entities.ussenate.reason)
end
function suite:test_fetch_sensitivity_data_for_us_senate_range()
local ipData = fetchSensitivityData('156.33.0.0/24')
self:assertEquals('ussenate', ipData.matches[1]['entity-id'])
self:assertEquals('156.33.0.0/24', ipData.matches[1].range)
self:assertTrue(ipData.entities.ussenate.description:find('Senate'))
self:assertEquals('political', ipData.entities.ussenate.reason)
end
function suite:test_fetch_sensitivity_data_for_wmf_ip()
local ipData = fetchSensitivityData('185.15.56.1')
self:assertEquals('wmf', ipData.matches[1]['entity-id'])
self:assertEquals('185.15.56.1', ipData.matches[1].ip)
self:assertTrue(ipData.entities.wmf.description:find('Wikimedia Foundation'))
self:assertEquals('technical', ipData.entities.ussenate.reason)
end
function suite:test_fetch_sensitivity_data_for_private_ip()
local ipData = fetchSensitivityData('10.0.0.1')
self:assertEquals(0, #ipData.matches)
end
return suite