First commit
This commit is contained in:
		@@ -0,0 +1,62 @@
 | 
			
		||||
Test = {
 | 
			
		||||
    tests = {},
 | 
			
		||||
    activeTest = 0,
 | 
			
		||||
    screenShot = 1    
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Test.Test = function(name, func)
 | 
			
		||||
    local testId = #Test.tests + 1
 | 
			
		||||
    Test.tests[testId] = {
 | 
			
		||||
        name = name,
 | 
			
		||||
        actions = {},
 | 
			
		||||
        delay = 0,
 | 
			
		||||
        start = 0
 | 
			
		||||
    }
 | 
			
		||||
    local test = function(testFunc)
 | 
			
		||||
        table.insert(Test.tests[testId].actions, {type = "test", value = testFunc})
 | 
			
		||||
    end
 | 
			
		||||
    local wait = function(millis)
 | 
			
		||||
        Test.tests[testId].delay = Test.tests[testId].delay + millis
 | 
			
		||||
        table.insert(Test.tests[testId].actions, {type = "wait", value = Test.tests[testId].delay})
 | 
			
		||||
    end
 | 
			
		||||
    local ss = function()
 | 
			
		||||
        table.insert(Test.tests[testId].actions, {type = "screenshot"})
 | 
			
		||||
    end
 | 
			
		||||
    local fail = function(message)
 | 
			
		||||
        g_logger.fatal("Test " .. name .. " failed: " .. message)
 | 
			
		||||
    end
 | 
			
		||||
    func(test, wait, ss, fail)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
Test.run = function()
 | 
			
		||||
    if Test.activeTest > #Test.tests then
 | 
			
		||||
        g_logger.info("[TEST] Finished tests. Exiting...")
 | 
			
		||||
        return g_app.exit()
 | 
			
		||||
    end
 | 
			
		||||
    local test = Test.tests[Test.activeTest]
 | 
			
		||||
    if not test or #test.actions == 0 then
 | 
			
		||||
        Test.activeTest = Test.activeTest + 1
 | 
			
		||||
        local nextTest = Test.tests[Test.activeTest]
 | 
			
		||||
        if nextTest then
 | 
			
		||||
            nextTest.start = g_clock.millis()
 | 
			
		||||
            g_logger.info("[TEST] Starting test: " .. nextTest.name)
 | 
			
		||||
        end
 | 
			
		||||
        return scheduleEvent(Test.run, 500)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    local action = test.actions[1]
 | 
			
		||||
    if action.type == "test" then
 | 
			
		||||
        table.remove(test.actions, 1)        
 | 
			
		||||
        action.value()
 | 
			
		||||
    elseif action.type == "screenshot" then
 | 
			
		||||
        table.remove(test.actions, 1)        
 | 
			
		||||
        g_app.doScreenshot(Test.screenShot .. ".png")
 | 
			
		||||
        Test.screenShot = Test.screenShot + 1
 | 
			
		||||
    elseif action.type == "wait" then
 | 
			
		||||
        if action.value + test.start < g_clock.millis() then
 | 
			
		||||
            table.remove(test.actions, 1)        
 | 
			
		||||
        end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    scheduleEvent(Test.run, 100)
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user