Skip to content

Commit a199d56

Browse files
author
zhiyang
committed
Test: add some test cases
1 parent 8c1b4d8 commit a199d56

File tree

7 files changed

+237
-189
lines changed

7 files changed

+237
-189
lines changed

packages/upload/src/iframe-upload.vue

Lines changed: 0 additions & 167 deletions
This file was deleted.

packages/upload/src/index.vue

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<script>
22
import UploadList from './upload-list';
33
import Upload from './upload';
4-
import IframeUpload from './iframe-upload';
54
import ElProgress from 'element-ui/packages/progress';
65
import Migrating from 'element-ui/src/mixins/migrating';
76
@@ -15,8 +14,7 @@ export default {
1514
components: {
1615
ElProgress,
1716
UploadList,
18-
Upload,
19-
IframeUpload
17+
Upload
2018
},
2119
2220
provide() {
@@ -288,9 +286,7 @@ export default {
288286
};
289287
290288
const trigger = this.$slots.trigger || this.$slots.default;
291-
const uploadComponent = (typeof FormData !== 'undefined' || this.$isServer)
292-
? <upload {...uploadData}>{trigger}</upload>
293-
: <iframeUpload {...uploadData}>{trigger}</iframeUpload>;
289+
const uploadComponent = <upload {...uploadData}>{trigger}</upload>;
294290
295291
return (
296292
<div>

test/unit/specs/autocomplete.spec.js

Lines changed: 137 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createVue, triggerClick, destroyVM } from '../util';
1+
import { createVue, triggerClick, destroyVM, triggerKeyDown } from '../util';
22

33
describe('Autocomplete', () => {
44
let vm;
@@ -127,6 +127,142 @@ describe('Autocomplete', () => {
127127
}, 500);
128128
}, 500);
129129
});
130+
it('input', done => {
131+
vm = createVue({
132+
template: `
133+
<el-autocomplete
134+
ref="autocomplete"
135+
v-model="state"
136+
:trigger-on-focus="false"
137+
:fetch-suggestions="querySearch"
138+
></el-autocomplete>
139+
`,
140+
data() {
141+
return {
142+
restaurants: [],
143+
state: ''
144+
};
145+
},
146+
methods: {
147+
querySearch(queryString, cb) {
148+
var restaurants = this.restaurants;
149+
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
150+
cb(results);
151+
},
152+
createFilter(queryString) {
153+
return (restaurant) => {
154+
return (restaurant.value.indexOf(queryString.toLowerCase()) === 0);
155+
};
156+
},
157+
loadAll() {
158+
return [
159+
{ 'value': '三全鲜食(北新泾店)', 'address': '长宁区新渔路144号' },
160+
{ 'value': 'Hot honey 首尔炸鸡(仙霞路)', 'address': '上海市长宁区淞虹路661号' },
161+
{ 'value': '新旺角茶餐厅', 'address': '上海市普陀区真北路988号创邑金沙谷6号楼113' },
162+
{ 'value': '泷千家(天山西路店)', 'address': '天山西路438号' }
163+
];
164+
}
165+
},
166+
mounted() {
167+
this.restaurants = this.loadAll();
168+
}
169+
}, true);
170+
const autocomplete = vm.$refs.autocomplete;
171+
const input = autocomplete.$refs.input;
172+
input.$emit('input', '三');
173+
setTimeout(() => {
174+
expect(vm.state).to.be.equal('三');
175+
expect(autocomplete.suggestions[0].value).to.be.equal('三全鲜食(北新泾店)');
176+
input.$emit('input', '');
177+
setTimeout(() => {
178+
expect(vm.state).to.be.equal('');
179+
expect(autocomplete.suggestions.length).to.be.equal(0);
180+
done();
181+
}, 500);
182+
}, 500);
183+
});
184+
describe('enter select', () => {
185+
const createVm = (selectWhenUnmatched = false) => {
186+
return createVue({
187+
template: `
188+
<el-autocomplete
189+
ref="autocomplete"
190+
v-model="state"
191+
@select="handleSelect"
192+
:trigger-on-focus="false"
193+
:select-when-unmatched="selectWhenUnmatched"
194+
:fetch-suggestions="querySearch"
195+
></el-autocomplete>
196+
`,
197+
data() {
198+
return {
199+
restaurants: [],
200+
state: '',
201+
selectWhenUnmatched: selectWhenUnmatched,
202+
item: {}
203+
};
204+
},
205+
methods: {
206+
querySearch(queryString, cb) {
207+
var restaurants = this.restaurants;
208+
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
209+
cb(results);
210+
},
211+
createFilter(queryString) {
212+
return (restaurant) => {
213+
return (restaurant.value.indexOf(queryString.toLowerCase()) === 0);
214+
};
215+
},
216+
loadAll() {
217+
return [
218+
{ 'value': '三全鲜食(北新泾店)', 'address': '长宁区新渔路144号' },
219+
{ 'value': 'Hot honey 首尔炸鸡(仙霞路)', 'address': '上海市长宁区淞虹路661号' },
220+
{ 'value': '新旺角茶餐厅', 'address': '上海市普陀区真北路988号创邑金沙谷6号楼113' },
221+
{ 'value': '泷千家(天山西路店)', 'address': '天山西路438号' }
222+
];
223+
},
224+
handleSelect(item) {
225+
this.item = item;
226+
}
227+
},
228+
mounted() {
229+
this.restaurants = this.loadAll();
230+
}
231+
}, true);
232+
};
233+
it('select', done => {
234+
vm = createVm();
235+
const autocomplete = vm.$refs.autocomplete;
236+
const input = autocomplete.$refs.input;
237+
input.$el.querySelector('input').focus();
238+
input.$emit('input', '三');
239+
setTimeout(() => {
240+
triggerKeyDown(input.$el, 40); // down
241+
setTimeout(() => {
242+
triggerKeyDown(input.$el, 13); // enter
243+
setTimeout(() => {
244+
expect(vm.item.address).to.be.equal('长宁区新渔路144号');
245+
done();
246+
}, 200);
247+
}, 200);
248+
}, 500);
249+
});
250+
it('select unmatched', done => {
251+
vm = createVm(true);
252+
const autocomplete = vm.$refs.autocomplete;
253+
const input = autocomplete.$refs.input;
254+
input.$emit('input', '关键字');
255+
setTimeout(() => {
256+
expect(autocomplete.suggestions.length).to.be.equal(0);
257+
triggerKeyDown(input.$el, 13); // enter
258+
setTimeout(() => {
259+
expect(autocomplete.highlightedIndex).to.be.equal(-1);
260+
expect(vm.item.value).to.be.equal('关键字');
261+
done();
262+
}, 500);
263+
}, 500);
264+
});
265+
});
130266
it('props', done => {
131267
vm = createVue({
132268
template: `

test/unit/specs/dropdown.spec.js

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
1-
import { createVue, triggerEvent, destroyVM } from '../util';
2-
3-
const keyDown = (el, keyCode) => {
4-
const evt = document.createEvent('Events');
5-
evt.initEvent('keydown', true, true);
6-
evt.keyCode = keyCode;
7-
el.dispatchEvent(evt);
8-
};
1+
import { createVue, triggerEvent, destroyVM, triggerKeyDown } from '../util';
92

103
describe('Dropdown', () => {
114
let vm;
@@ -209,10 +202,10 @@ describe('Dropdown', () => {
209202
let dropdown = vm.$refs.dropdown;
210203
let dropdownElm = dropdown.$el;
211204
let triggerElm = dropdownElm.children[0];
212-
keyDown(triggerElm, 13); // enter
205+
triggerKeyDown(triggerElm, 13); // enter
213206
setTimeout(() => {
214207
expect(dropdown.visible).to.be.true;
215-
keyDown(triggerElm, 27); // esc
208+
triggerKeyDown(triggerElm, 27); // esc
216209
setTimeout(() => {
217210
expect(dropdown.visible).to.be.false;
218211
done();
@@ -245,9 +238,9 @@ describe('Dropdown', () => {
245238

246239
setTimeout(() => {
247240
expect(dropdown.visible).to.be.true;
248-
keyDown(dropdownMenu, 40); // down
241+
triggerKeyDown(dropdownMenu, 40); // down
249242
setTimeout(() => {
250-
keyDown(dropdownMenu, 13); // enter
243+
triggerKeyDown(dropdownMenu, 13); // enter
251244
setTimeout(() => {
252245
expect(dropdown.visible).to.be.false;
253246
done();

0 commit comments

Comments
 (0)