ユーザーがファイルをアップロードするシステムを構築しています。分度器を使用してファイルのアップロードをテストすることができましたが、サーバーから未加工のファイルを要求するときに、応答がアップロードされたファイルと同じであることを確認する必要があります。
ユーザーがリンクをクリックしてファイルをダウンロードすると、ファイルに対する通常の GET 要求がトリガーされます。プレーン テキスト ファイルを扱っているため、ダウンロードしたファイルは添付ファイルとして提供されず、代わりにブラウザに表示されます。関連する PHP コードは次のとおりです。
header('Content-Type: text/plain');
header('Content-Length: ' . $file->getSize());
header('Content-Disposition: filename="file.txt"');
$file->openFile('rb')->fpassthru();
2 つの問題があります。
- ファイル全体がダウンロードされるまで分度器を待機させるにはどうすればよいですか?
- ダウンロードしたファイルとアップロードしたファイルを比較するにはどうすればよいですか?
これが私がこれまでに得たものです:
var path = require('path');
function uploadFile(filename) {
var absolutPath = path.resolve(__dirname, filename);
$('input#fileupload').sendKeys(absolutPath);
}
describe('Download', function() {
it('should be exactly the same as an uploaded text file', function() {
uploadFile('data/2.txt');
browser.wait(function() {
return element(by.id('download-button')).isPresent();
});
element(by.id('download-button')).click();
// Wait until page is loaded
// Compare uploaded file with downloaded file
});
});