testunit

imageUrl = "http://ico.ooopic.com/ajax/iconpng/?id=96776.png";

imageRander0 = Image();
imageRander0:frame(0,100,100,100);
imageRander1 = Image();
imageRander1:frame(0,100,90,90);
imageRander0:image(imageUrl,function()
    imageRander1:render(imageRander0,0);
    imageRander1:alpha(0.98)
end);

w,h = System:screenSize();--获取屏幕尺寸


--字符串分割测试
s = "中文2344中文2234中文";
while s:len()>0 do
    i,j = s:find("%d+") ;
    if( i and j ) then
        print(s:sub(1,i-1));
        print(s:sub(i,j));
        s = s:sub(j+1,s:len());
    else
        print(s);
        s = "";
    end
end


demoLabel = Label();
demoLabel:frame(0,20,w,40);
demoLabel:text("点击屏幕一次执行一个测试demo");

label = Label();-- 创建一个文本框
label:frame(160,h-80,w,80);


att1 = StyledString( "12te",  { fontSize=12, fontWeight=FontWeight.BOLD, fontColor=0xff, foregroundAlpha=0.9 , charpace=4} );
att2 = StyledString( "测试",  { fontSize=30, fontColor=0xff0000, backgroundColor=0xff, charpace=10} );
att3 = StyledString( "289",  { fontSize=13, fontColor=0x777777, strikethroughStyle=1} );
att4 = StyledString( "下划", { fontSize=9, fontColor=0x777777, underlineStyle=1} );

label2 = Label();
label2:frame(20,30,w-40, 60);
label2:text(att1 + att2 + att3 + att4);

label2:backgroundColor(0xff00FF)
label2:masksToBounds(false);
label2:cornerRadius(4);

label2:shadowOffset(1,1);
label2:shadowRadius(2);
label2:shadowOpacity(8);
label2:shadowColor(0xff0000);

detailInfo = Label();
detailInfo:frame(0, h-40, w, 40);

function detail( info )
    detailInfo:text(info);
    detailInfo:adjustSize();
end
--------------------------
demoArray = {

    function()
        Http.get("http://www.baidu.com", --http url
            function(request)-- http call back
                print(request );
                print(request:responseStatusCode() );--http请求是否成功 返回码

                local heads =  request:responseHeaderFields();
                for key,value in pairs(heads) do
                    print(key .. " : " .. value)
                end
            end
        );  
    end,

    function()
        imageView = Image();
        imageView:image(imageUrl);
        imageView:frame(200,0,64,64);
        detail("Image");
        imageView:center(w/2,h/2);
    end,
    function()
        --[[
        GestureState.POSSIBLE
        GestureState.BEGAN // 手势开始
        GestureState.CHANGED
        GestureState.END // 手势结束
        GestureState.CANCEL
        GestureState.FAILED
        ]]
        local g = PinchGesture(function(gesture)
                imageView:transformRoteAndScale( 0, gesture:scale());
            end);
        window:addGesture(g);
    end,

    function()
        local g = RotationGesture(function(gesture)
                imageView:transformRoteAndScale( gesture:rotation(), 1);
            end);
        window:addGesture(g);
    end,
    function()
        local g = SwipeGesture(function(gesture)
                if( gesture:state()==GestureState.END ) then
                    print( "两个手势向左滑动" );
                end
            end);
        --[[ GestureDirection.RIGHT = 1,
        GestureDirection.LEFT = 2,
        GestureDirection.UP = 4,
        GestureDirection.DOWN  = 8]]
        g:touchCount(2);
        g:direction( GestureDirection.LEFT);
        window:addGesture(g);
    end,
    function()
        local g = LongPressGesture(function(gesture)
                if( gesture:state()== GestureState.END )  then
                    print( "长按手势检测到了" );
                end
            end);
        g:touchCount(2);
        window:addGesture(g);
    end,
    function()
        Vibrate();
    end,
    function()
        temp = loadJson("{test=\"haha\"}");
        print(temp.test)    
    end,
    function()
        print( DB.get("key",-1) );  
    end,
    function()
        DB.set("key",88);
        print( DB.get("key",-1) );  
    end,
    function()
        print(System:osVersion());
        print(System:vmVersion());
        print(System:platform());
        print(System:device());
        print(System:screenSize());
        print(System:gc());
    end,
    function()
    end,
    function()
        print(type(AlertView));
    end,

    function()
        Alert("title","msg", "ok", "cancel",
                 function(buttonID)--提示框回调
                    print(buttonID);
                 end
         )  
    end,

    function()
        date1 = Date();
        print(date1);
        timeInterval1 = date1:timeInterval();
        print(timeInterval1);
        date2 = Date(timeInterval1-60*60*3);
        date3 = Date("2014-12-02 12:02:40");
        print( date2 );
        print( date3 );
        if date2== date3 then
            print("date2 ==date3");
        else
            print("date2 !=date3");
        end
        print( date1 - date2 );
    end,


    function()
        transform1 = Transform3D();
        if transform1:isIdentity()  then
            print("transform1:isIdentiy()==true")
        else
            print("transform1:isIdentiy()==false")
        end
        transform1:scale(2,2,2);
        imageView:transform3D(transform1);
        if transform1:isIdentity()  then
            print("transform1:isIdentiy()==true")
        else
            print("transform1:isIdentiy()==false")
        end
        transform1:set(Transform3D());
        if transform1:isIdentity()  then
            print("transform1:isIdentiy()==true")
        else
            print("transform1:isIdentiy()==false")
        end
    end,
    function()
        transform2 = Transform3D();
        transform2:translation(20,20,20);
        imageView:transform3D(transform2);
    end,
    function()
        transform3 = Transform3D();
        transform3:translation(20,20,20);
        transform3:rotate(3.14/3,0,1,0)    
        imageView:transform3D(transform3);
    end,
    function()
        transform4 = transform1:concat(transform2):concat(transform3);
        imageView:transform3D(transform4);
        if transform1==transform2  then
            print("transform1==transform2")
        else
            print("transform1!=transform2")
        end
        transform1:set(Transform3D());
        if transform1==Transform3D()  then
            print("transform1==transform2")
        else
            print("transform1!=transform2")
        end
    end,
    function()
        imageView:transform3D(Transform3D());
    end,

    function()
        transform4 = transform1:reset():scale(2,2,2) * transform2 * transform3;

            print("动画开始");
        Animate(3,0,
            function()
                imageView:transform3D(transform4);
            end, 
            function()
                print("动画结束了");
            end
            );  
    end,
    function()
        transform4 = transform1:reset():scale(2,2,2) * transform2 * transform3;
        imageView:transform3D(transform4);
        if transform1==transform2  then
            print("transform1==transform2")
        else
            print("transform1!=transform2")
        end
        transform1:set(Transform3D());
        if transform1==Transform3D()  then
            print("transform1==transform2")
        else
            print("transform1!=transform2")
        end
    end,
    function()
        imageView:removeFromSuper();
        imageView = nil;
        System:gc();    
    end,

    function()
        timer = Timer(function()
                print("test timer");
            end);
        timer:start(0.1,false);
    end,
    function()
        timer:start(0.1,true);
    end,
    function()
        timer:stop();
    end,

    function()
        scrollView = ScrollView();
        scrollView:backgroundColor(0xff00);
        scrollView:frame(10,10,100,100);
        scrollView:contentSize(600,300);
        print(scrollView:contentSize());
    end,
    function()
        scrollView:offset(150,0,false);
        print( scrollView:offset() );
    end,
    function()
    --  scrollView:pageEnable(true);
    --  print(scrollView:pageEnable());
    end,
    function()
        window:backgroundColor(0,0.5);
        pageControl = PagerIndicator();
        pageControl:center(150,10);
        pageControl:pageCount(10);
        print(pageControl:pageCount() );
        scrollView:callback( function()
            local  x,y = scrollView:offset();
            pageControl:currentPage(x/100);
            print(pageControl:currentPage());
        end );
    end,
    function()
        scrollView:removeFromSuper();
        scrollView = nil;
    end,

    function()
        textFiled = TextField();
        textFiled:placeholder("我是输入框");
        textFiled:backgroundColor(0xffff00);
        textFiled:frame(10,20,300,40);
        textFiled:callback{
                BeginEdit=function()
                    print("开始编辑")
                end,
                EndEdit=function()
                    print("结束编辑")
                end
        }
        print(textFiled:placeholder());
    end,

    function()
        textFiled:requestFocus();
        textFiled:callback( function()
                                    print("开始编辑")
                              end );
    end,
    function()
        textFiled:text("GameOver");
        print(textFiled:text());
    end,
    function()
        textFiled:removeFromSuper();
        textFiled = nil;
    end,

    function()
        view = View();
        view:frame(10,60,100,200);
        print( view:frame() );
        view:backgroundColor(0xff0000);
        print(view);
        view:callback( function()
            print("button call back");
        end)

        title = Label();
        title:text("测试测试测试测试测试测试测试测试测试");
        title:backgroundColor(0xff00ff);
        title:frame(50,50,500,30);
        title:adjustSize();
        view:addView(title);
    end,


    function()
        urlA = "http://img2.3lian.com/img2007/13/68/20080405154401434.png";
        urlB = "http://img2.3lian.com/img2007/13/68/20080405154401440.png";
        urlC = "http://img2.3lian.com/img2007/13/68/20080405154401926.png";

        button = Button();
        button:frame(150,50,100,100);
        button:image(urlA ,urlB,urlC )
        button:callback( function()
                print("button call back");
            end);
        button:enabled(false);
    end,

    function()
        textButton = Button();
        textButton:frame(150,10,100,40);
        textButton:title("A","B","C","D");
        textButton:callback( function()
            print("textButton call back");
        end) ;
    end,

    function()
        view:hidden(true);
        print( view:hidden() );
    end,
    function()
        view:hidden(false);
        print( view:hidden() );
    end,
    function()
        view:enabled( false );
        print( view:enabled() );
    end,
    function()
        view:enabled(true);
        print( view:enabled() );
    end,
    function()
        print( view:backgroundColor() );
        view:backgroundColor(0xff);
        print( view:backgroundColor() );
    end,
    function()
        print( view:alpha() );
        view:alpha(0.5);
        print( view:alpha() );
    end,
    function()
        view:cornerRadius(8);
        print( view:cornerRadius() );
    end,
    function()
        view:borderWidth(2);
        print( view:borderWidth() );
    end,
    function()
        view:borderColor(0xff0000);
        print( view:borderColor() );
    end,
    function()
        -- view:clipsToBounds(true);
        -- print( view:clipsToBounds() );
    end,
    function()
        -- view:clipsToBounds(false);
        -- print( view:clipsToBounds() );
    end,
    function()
        print( view:center() );
        view:center(160,240);
        print( view:center() );
    end,
    function()
        title:removeFromSuper();
    end,
    function()
        view:addView(title);
    end,
    function()
        title:rotation(3.14/2);
        title:scale(2);
    end,
    function()
        title:rotation(0);
        title:scale(1);
    end,
    function()
        title:anchorPoint( 0.0, 0.5 );
    end,
    function()
        title:rotation( 3.14/2);
        title:scale(2);
    end,

    function()
        dragGesture = PanGesture(
            function( g )
                print("drag");
            end
        );

        window:addGesture(dragGesture);
    end,

    function()
        window:removeGesture(dragGesture);
    end,

    function()
        print("------end------");
        window:release();
    end,
}
index = 1;


function setLabel( i )
        label:text(""..i);
        if ( i%2==1 ) then
            label:textColor(0xff,1);
        else 
            label:textColor(0x00,0.2);
        end
        label:fontSize(64);
        label:adjustSize();
        label:center(w/2,h-128);
end

setLabel(1);

gesture = TapGesture(
    function( g )
        print("Test"..index .. " : ");
        func = demoArray[index];
        func();
        index = index + 1;
        setLabel(index);
    end
);

window:addGesture(gesture);

window:frame(0,0,w,h);

window:callback{
    ViewWillAppear = function()
        print("viewWillAppear");
    end,
    ViewDidAppear = function()
        print("viewDidAppear");
    end,
    ViewWillDisAppear = function()
        print("viewWillDisAppear");
    end,
    ViewDidDisAppear = function()
        print("viewDidDisAppear");
    end,
    KeyboardWillShow = function()
        print("keyboardWillShow");
    end,
    KeyboardDidShow = function()
        print("keyboardDidShow");
    end,
    KeyboardWillHide = function()
        print("keyboardWillHide");
    end,
    KeyboardDidHide = function()
        print("keyboardDidHide");
    end,
    LayoutSubviews = function()
        print("layoutSubviews");
    end,
};