2013-06-14 25 views
8

HTML 5 Dosya API'sı kullanarak dosya yüklemek için javascript birim testi yapmanın bir yolu var mı? Mesela ben kodu vardır:HTML5 dosya yüklemesi için birim yükleme

<form method="POST" enctype="multipart/form-data"> 
    <input type="file" id="fileselect" name="fileselect[]" multiple="multiple"/> 
</form> 

<script type="text/javascript"> 
    function fileSelectHandler(e) { 
     var files = e.target.files || e.dataTransfer.files; 
     // at this point, files is a FileList object 
    } 

    var fileselect = document.getElementById("fileselect"); 
    fileselect.addEventListener("change", fileSelectHandler, false); 
</script> 

Yani javascript ile bu otomatik hale getirmek istiyorum, bu yüzden birim test olabilir de. Bu yüzden değişiklik olayını tetiklemem ve dosyaları bir şekilde iletmem gerekiyor. Sonunda, her dosya istediğim özel bir yolla bir HTML 5 File nesnesi olmalıdır.

+2

Sen bu tür bir tarayıcı uzantısı gerekiyordu yapmak, JavaScript 'Dosya' girişin değerini belirleyemezsiniz. Ancak, neden tarayıcı girdisinin işlevselliğini test etmeye çalışıyorsunuz, neden testin bir parçası olarak sadece bir dosya nesnesine sahip değilsiniz? – robertc

+0

Robert, 'karmaşık' kodum FileList olan dosya değişkenine sahip olmayla başlıyor. FileList'in sabit diskteki gerçek dosyalara işaret eden File nesnelerinin bir listesi olmasını nasıl sağlayabilirim? – StefanH

+0

Zaten yapamayacağımı söyledim, ama eğer yapabildiysen, eğer testin 'input' elementi ile bir dosya seçemediyse, bu senin uygulaman hakkında ne kanıtlayacak? Çeşitli tarayıcı satıcılarına C++ yamaları göndermeyi planlıyor musunuz? – robertc

cevap

0

Bunun yardımcı olup olmayacağından emin değilim, ancak firefox için iMacros'u kullanmaya ne dersiniz? İstediğiniz her şeyi yapan bir makro kaydedebilir ve ardından istediğiniz kadar çalıştırın. Benim UI testimin neredeyse tamamı için kullanmak ve çalışmak benim için gerçekten çok kolay.

iMacros firefox plugin