From 7b99f4a3b53089fe43d4731bb143ce9fa21de0f4 Mon Sep 17 00:00:00 2001 From: kfeagle Date: Thu, 16 Mar 2017 10:09:08 +0800 Subject: [PATCH 1/6] + [ios] texture add maxlength ,because android textarea has this attributes --- ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m index 7851b4195b..28efd3c5c0 100644 --- a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m +++ b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m @@ -607,6 +607,15 @@ - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range r [self fireEvent:@"return" params:@{@"value":[textView text],@"returnKeyType":typeStr} domChanges:@{@"attrs":@{@"value":[textView text]}}]; } } + + if (_maxLength) { + NSUInteger oldLength = [textView.text length]; + NSUInteger replacementLength = [text length]; + NSUInteger rangeLength = range.length; + NSUInteger newLength = oldLength - rangeLength + replacementLength; + return newLength <= [_maxLength integerValue] ; + } + return YES; } From cf884be8ebcc622e4dd1ec19b30688a8744b3158 Mon Sep 17 00:00:00 2001 From: kfeagle Date: Thu, 23 Mar 2017 17:08:31 +0800 Subject: [PATCH 2/6] + [ios] add macaca test case for texture maxlength --- .../Sources/Component/WXEditComponent.m | 3 ++ test/pages/components/textarea-maxlength.vue | 44 +++++++++++++++++++ .../components/textarea-maxlength.test.js | 35 +++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 test/pages/components/textarea-maxlength.vue create mode 100644 test/scripts/components/textarea-maxlength.test.js diff --git a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m index 28efd3c5c0..6bd339071c 100644 --- a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m +++ b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m @@ -348,6 +348,9 @@ - (void)updateAttributes:(NSDictionary *)attributes } if (attributes[@"value"]) { _value = [WXConvert NSString:attributes[@"value"]]?:@""; + if (_maxLength && [_value length] > [_maxLength integerValue]&& [_maxLength integerValue]> 0) { + _value = [_value substringToIndex:([_maxLength integerValue])]; + } [self setText:_value]; } if (attributes[@"returnKeyType"]) { diff --git a/test/pages/components/textarea-maxlength.vue b/test/pages/components/textarea-maxlength.vue new file mode 100644 index 0000000000..796ea2b996 --- /dev/null +++ b/test/pages/components/textarea-maxlength.vue @@ -0,0 +1,44 @@ + + + \ No newline at end of file diff --git a/test/scripts/components/textarea-maxlength.test.js b/test/scripts/components/textarea-maxlength.test.js new file mode 100644 index 0000000000..f40368cead --- /dev/null +++ b/test/scripts/components/textarea-maxlength.test.js @@ -0,0 +1,35 @@ +'use strict'; + +var _ = require('macaca-utils'); +var assert = require('chai').assert +var wd = require('weex-wd') +var path = require('path'); +var os = require('os'); +var util = require("../util.js"); + +describe('textarea maxlength vue test2 ', function () { + this.timeout(util.getTimeoutMills()); + var driver = util.createDriver(wd); + + before(function () { + return util.init(driver) + .get('wxpage://' + util.getDeviceHost() +'/components/textarea-maxlength.js') + .waitForElementByXPath('//div/text[1]',util.getGETActionWaitTimeMills(),1000) + }); + + after(function () { + return util.quit(driver) + }) + + it('#1 textarea maxlenght', () => { + return driver + .waitForElementByXPath('//div/textarea') + .sendKeys('12345678') + .elementByXPath('//div/textarea') + .text() + .then((text)=>{ + assert.equal(text,'1234') + }) + }) + +}); \ No newline at end of file From a532a1b9cd2459628fe725fa497bc391debf94b0 Mon Sep 17 00:00:00 2001 From: kfeagle Date: Thu, 23 Mar 2017 17:12:41 +0800 Subject: [PATCH 3/6] + [ios] update package ison for iOS test --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 69980e85ef..f8e9df6d90 100644 --- a/package.json +++ b/package.json @@ -143,7 +143,7 @@ "weex-components": "^0.2.0", "weex-loader": "^0.4.0", "weex-vdom-tester": "^0.2.0", - "weex-wd": "^1.0.14", + "weex-wd": "^1.0.17", "wwp": "^0.3.5", "xml2map": "^1.0.2" } From 63291832403a1b131440c17348ede734e5460672 Mon Sep 17 00:00:00 2001 From: kfeagle Date: Thu, 23 Mar 2017 17:49:53 +0800 Subject: [PATCH 4/6] + [ios] add 0 limit --- ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m index 6bd339071c..2f377ed2c9 100644 --- a/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m +++ b/ios/sdk/WeexSDK/Sources/Component/WXEditComponent.m @@ -348,7 +348,7 @@ - (void)updateAttributes:(NSDictionary *)attributes } if (attributes[@"value"]) { _value = [WXConvert NSString:attributes[@"value"]]?:@""; - if (_maxLength && [_value length] > [_maxLength integerValue]&& [_maxLength integerValue]> 0) { + if (_maxLength && [_value length] > [_maxLength integerValue]&& [_maxLength integerValue] >= 0) { _value = [_value substringToIndex:([_maxLength integerValue])]; } [self setText:_value]; From 217bfe8aba02397ecf131d11e2e910d3b2d0b4f4 Mon Sep 17 00:00:00 2001 From: kfeagle Date: Fri, 24 Mar 2017 09:59:04 +0800 Subject: [PATCH 5/6] + [ios] add autofocus for test case --- test/pages/components/textarea-maxlength.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/pages/components/textarea-maxlength.vue b/test/pages/components/textarea-maxlength.vue index 796ea2b996..f77b559e29 100644 --- a/test/pages/components/textarea-maxlength.vue +++ b/test/pages/components/textarea-maxlength.vue @@ -1,7 +1,7 @@