PuzzleSDK
UIHelperSubStringTest类 参考

#include <UnitTest.h>

+ 类 UIHelperSubStringTest 继承关系图:
+ UIHelperSubStringTest 的协作图:

Public 成员函数

 CREATE_FUNC (UIHelperSubStringTest)
 
virtual void onEnter () override
 
virtual std::string subtitle () const override
 
- Public 成员函数 继承自 UnitTestDemo
virtual std::string title () const override
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual Type getTestType () const
 
virtual float getDuration () const
 
virtual std::string getExpectedOutput () const
 
virtual std::string getActualOutput () const
 
virtual void restartTestCallback (cocos2d::Ref *sender)
 
virtual void nextTestCallback (cocos2d::Ref *sender)
 
virtual void priorTestCallback (cocos2d::Ref *sender)
 
virtual void onBackCallback (cocos2d::Ref *sender)
 
void setTestSuite (TestSuite *testSuite)
 
TestSuitegetTestSuite () const
 
float getRunTime () const
 
void setTestCaseName (const std::string &name)
 
std::string getTestCaseName () const
 
const cocos2d::Label * getSubtitleLable () const
 
const cocos2d::MenuItemImage * getRestartTestItem () const
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

详细描述

在文件 UnitTest.h75 行定义.

成员函数说明

◆ CREATE_FUNC()

UIHelperSubStringTest::CREATE_FUNC ( UIHelperSubStringTest  )

◆ onEnter()

void UIHelperSubStringTest::onEnter ( )
overridevirtual

重载 TestCase .

在文件 UnitTest.cpp817 行定义.

818{
820
821 using cocos2d::ui::Helper;
822 {
823 // Trivial case
824 std::string source = "abcdefghij";
825 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 2) == "ab");
826 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 2, 2) == "cd");
827 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 4, 2) == "ef");
828 }
829 {
830 // Empty string
831 std::string source = "";
832
833 // OK
834 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 0) == "");
835 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 1) == "");
836
837 // Error: These cases cause "out of range" error
838 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 0) == "");
839 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 1) == "");
840 }
841 {
842 // Ascii
843 std::string source = "abc";
844
845 // OK
846 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 0) == "");
847 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 0) == "");
848 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 2, 0) == "");
849 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 3, 0) == "");
850 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 3) == "abc");
851 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 4) == "abc");
852 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 2) == "bc");
853 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 3) == "bc");
854 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 2, 1) == "c");
855 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 2, 2) == "c");
856 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 3, 1) == "");
857 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 3, 2) == "");
858
859 // Error: These cases cause "out of range" error
860 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 4, 0) == "");
861 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 4, 1) == "");
862 }
863 {
864 // CJK characters
865 std::string source = "这里是中文测试例";
866
867 // OK
868 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 0) == "");
869 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 0) == "");
870 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 7, 0) == "");
871 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 8, 0) == "");
872 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 8, 1) == "");
873 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 1) == "\xe8\xbf\x99");
874 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 4) == "\xe8\xbf\x99\xe9\x87\x8c\xe6\x98\xaf\xe4\xb8\xad");
875 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 8) == "\xe8\xbf\x99\xe9\x87\x8c\xe6\x98\xaf\xe4\xb8\xad\xe6\x96\x87\xe6\xb5\x8b\xe8\xaf\x95\xe4\xbe\x8b");
876 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 100) == "\xe8\xbf\x99\xe9\x87\x8c\xe6\x98\xaf\xe4\xb8\xad\xe6\x96\x87\xe6\xb5\x8b\xe8\xaf\x95\xe4\xbe\x8b");
877 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 2, 5) == "\xe6\x98\xaf\xe4\xb8\xad\xe6\x96\x87\xe6\xb5\x8b\xe8\xaf\x95");
878 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 6, 2) == "\xe8\xaf\x95\xe4\xbe\x8b");
879 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 6, 100) == "\xe8\xaf\x95\xe4\xbe\x8b");
880
881 // Error: These cases cause "out of range" error
882 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 9, 0) == "");
883 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 9, 1) == "");
884 }
885 {
886 // Redundant UTF-8 sequence for Directory traversal attack (1)
887 std::string source = "\xC0\xAF";
888
889 // Error: Can't convert string to correct encoding such as UTF-32
890 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 0) == "");
891 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 1) == "");
892 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 0) == "");
893 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 1) == "");
894 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 2) == "");
895 }
896 {
897 // Redundant UTF-8 sequence for Directory traversal attack (2)
898 std::string source = "\xE0\x80\xAF";
899
900 // Error: Can't convert string to correct encoding such as UTF-32
901 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 0) == "");
902 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 1) == "");
903 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 0) == "");
904 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 1) == "");
905 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 3) == "");
906 }
907 {
908 // Redundant UTF-8 sequence for Directory traversal attack (3)
909 std::string source = "\xF0\x80\x80\xAF";
910
911 // Error: Can't convert string to correct encoding such as UTF-32
912 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 0) == "");
913 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 1) == "");
914 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 0) == "");
915 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 1, 1) == "");
916 CC_ASSERT(Helper::getSubStringOfUTF8String(source, 0, 4) == "");
917 }
918}
virtual void onEnter() override
Definition: BaseTest.cpp:430

引用了 TestCase::onEnter().

+ 函数调用图:

◆ subtitle()

std::string UIHelperSubStringTest::subtitle ( ) const
overridevirtual

重载 TestCase .

在文件 UnitTest.cpp920 行定义.

921{
922 return "ui::Helper::getSubStringOfUTF8String Test";
923}

该类的文档由以下文件生成: