Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
167 changes: 0 additions & 167 deletions packages/upload/src/iframe-upload.vue

This file was deleted.

8 changes: 2 additions & 6 deletions packages/upload/src/index.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<script>
import UploadList from './upload-list';
import Upload from './upload';
import IframeUpload from './iframe-upload';
import ElProgress from 'element-ui/packages/progress';
import Migrating from 'element-ui/src/mixins/migrating';

Expand All @@ -15,8 +14,7 @@ export default {
components: {
ElProgress,
UploadList,
Upload,
IframeUpload
Upload
},

provide() {
Expand Down Expand Up @@ -288,9 +286,7 @@ export default {
};

const trigger = this.$slots.trigger || this.$slots.default;
const uploadComponent = (typeof FormData !== 'undefined' || this.$isServer)
? <upload {...uploadData}>{trigger}</upload>
: <iframeUpload {...uploadData}>{trigger}</iframeUpload>;
const uploadComponent = <upload {...uploadData}>{trigger}</upload>;

return (
<div>
Expand Down
138 changes: 137 additions & 1 deletion test/unit/specs/autocomplete.spec.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { createVue, triggerClick, destroyVM } from '../util';
import { createVue, triggerClick, destroyVM, triggerKeyDown } from '../util';

describe('Autocomplete', () => {
let vm;
Expand Down Expand Up @@ -127,6 +127,142 @@ describe('Autocomplete', () => {
}, 500);
}, 500);
});
it('input', done => {
vm = createVue({
template: `
<el-autocomplete
ref="autocomplete"
v-model="state"
:trigger-on-focus="false"
:fetch-suggestions="querySearch"
></el-autocomplete>
`,
data() {
return {
restaurants: [],
state: ''
};
},
methods: {
querySearch(queryString, cb) {
var restaurants = this.restaurants;
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
cb(results);
},
createFilter(queryString) {
return (restaurant) => {
return (restaurant.value.indexOf(queryString.toLowerCase()) === 0);
};
},
loadAll() {
return [
{ 'value': '三全鲜食(北新泾店)', 'address': '长宁区新渔路144号' },
{ 'value': 'Hot honey 首尔炸鸡(仙霞路)', 'address': '上海市长宁区淞虹路661号' },
{ 'value': '新旺角茶餐厅', 'address': '上海市普陀区真北路988号创邑金沙谷6号楼113' },
{ 'value': '泷千家(天山西路店)', 'address': '天山西路438号' }
];
}
},
mounted() {
this.restaurants = this.loadAll();
}
}, true);
const autocomplete = vm.$refs.autocomplete;
const input = autocomplete.$refs.input;
input.$emit('input', '三');
setTimeout(() => {
expect(vm.state).to.be.equal('三');
expect(autocomplete.suggestions[0].value).to.be.equal('三全鲜食(北新泾店)');
input.$emit('input', '');
setTimeout(() => {
expect(vm.state).to.be.equal('');
expect(autocomplete.suggestions.length).to.be.equal(0);
done();
}, 500);
}, 500);
});
describe('enter select', () => {
const createVm = (selectWhenUnmatched = false) => {
return createVue({
template: `
<el-autocomplete
ref="autocomplete"
v-model="state"
@select="handleSelect"
:trigger-on-focus="false"
:select-when-unmatched="selectWhenUnmatched"
:fetch-suggestions="querySearch"
></el-autocomplete>
`,
data() {
return {
restaurants: [],
state: '',
selectWhenUnmatched: selectWhenUnmatched,
item: {}
};
},
methods: {
querySearch(queryString, cb) {
var restaurants = this.restaurants;
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
cb(results);
},
createFilter(queryString) {
return (restaurant) => {
return (restaurant.value.indexOf(queryString.toLowerCase()) === 0);
};
},
loadAll() {
return [
{ 'value': '三全鲜食(北新泾店)', 'address': '长宁区新渔路144号' },
{ 'value': 'Hot honey 首尔炸鸡(仙霞路)', 'address': '上海市长宁区淞虹路661号' },
{ 'value': '新旺角茶餐厅', 'address': '上海市普陀区真北路988号创邑金沙谷6号楼113' },
{ 'value': '泷千家(天山西路店)', 'address': '天山西路438号' }
];
},
handleSelect(item) {
this.item = item;
}
},
mounted() {
this.restaurants = this.loadAll();
}
}, true);
};
it('select', done => {
vm = createVm();
const autocomplete = vm.$refs.autocomplete;
const input = autocomplete.$refs.input;
input.$el.querySelector('input').focus();
input.$emit('input', '三');
setTimeout(() => {
triggerKeyDown(input.$el, 40); // down
setTimeout(() => {
triggerKeyDown(input.$el, 13); // enter
setTimeout(() => {
expect(vm.item.address).to.be.equal('长宁区新渔路144号');
done();
}, 200);
}, 200);
}, 500);
});
it('select unmatched', done => {
vm = createVm(true);
const autocomplete = vm.$refs.autocomplete;
const input = autocomplete.$refs.input;
input.$emit('input', '关键字');
setTimeout(() => {
expect(autocomplete.suggestions.length).to.be.equal(0);
triggerKeyDown(input.$el, 13); // enter
setTimeout(() => {
expect(autocomplete.highlightedIndex).to.be.equal(-1);
expect(vm.item.value).to.be.equal('关键字');
done();
}, 500);
}, 500);
});
});
it('props', done => {
vm = createVue({
template: `
Expand Down
17 changes: 5 additions & 12 deletions test/unit/specs/dropdown.spec.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
import { createVue, triggerEvent, destroyVM } from '../util';

const keyDown = (el, keyCode) => {
const evt = document.createEvent('Events');
evt.initEvent('keydown', true, true);
evt.keyCode = keyCode;
el.dispatchEvent(evt);
};
import { createVue, triggerEvent, destroyVM, triggerKeyDown } from '../util';

describe('Dropdown', () => {
let vm;
Expand Down Expand Up @@ -209,10 +202,10 @@ describe('Dropdown', () => {
let dropdown = vm.$refs.dropdown;
let dropdownElm = dropdown.$el;
let triggerElm = dropdownElm.children[0];
keyDown(triggerElm, 13); // enter
triggerKeyDown(triggerElm, 13); // enter
setTimeout(() => {
expect(dropdown.visible).to.be.true;
keyDown(triggerElm, 27); // esc
triggerKeyDown(triggerElm, 27); // esc
setTimeout(() => {
expect(dropdown.visible).to.be.false;
done();
Expand Down Expand Up @@ -245,9 +238,9 @@ describe('Dropdown', () => {

setTimeout(() => {
expect(dropdown.visible).to.be.true;
keyDown(dropdownMenu, 40); // down
triggerKeyDown(dropdownMenu, 40); // down
setTimeout(() => {
keyDown(dropdownMenu, 13); // enter
triggerKeyDown(dropdownMenu, 13); // enter
setTimeout(() => {
expect(dropdown.visible).to.be.false;
done();
Expand Down
Loading