2013-09-26 131 views
6

Tôi đang viết các bài kiểm tra đơn vị cho một thư viện sử dụng WebRTC.Tự động cho phép quyền WebRTC trong các bài kiểm tra đơn vị

Bộ thử nghiệm của tôi yêu cầu quyền từ Chrome cho hầu như mọi thử nghiệm đơn vị, yêu cầu tôi phải nhấp vào nút 'cho phép' theo cách thủ công cho mọi thử nghiệm.

Có cờ hoặc cài đặt tôi có thể thay đổi để luôn cho phép truy cập phương tiện trên toàn cầu để bộ thử nghiệm của tôi không được nhắc về quyền không?

Tôi đang sử dụng nhân tố thử nghiệm Jasmine trong Chrome.

Trả lời

6

Câu hỏi hay.

EDIT: Với cờ --use-fake-ui-for-media-stream của Chrome, tất cả cuộc gọi gUM sẽ được tự động chấp nhận và sẽ không có giao diện người dùng nào bật lên.

Tôi tin rằng có một số thảo luận về cờ trình duyệt có nghĩa là xác nhận quyền không bao giờ được yêu cầu thông qua giao diện người dùng, nhưng theo tôi biết điều này chưa được triển khai trong bất kỳ trình duyệt nào. (Tôi có thể tưởng tượng vấn đề bảo mật tiềm năng.)

Vài gợi ý (mà có lẽ sẽ không làm việc cho bạn, cho rằng bạn đang viết một thư viện, không phải là một ứng dụng ...)

  1. Could bạn chạy thử nghiệm từ ứng dụng Chrome? Nếu bạn sử dụng quyền audioCapture/videoCapture, quyền chỉ được yêu cầu một lần, khi cài đặt ứng dụng, không phải cho mọi phiên.

  2. Sử dụng HTTPS cho trang gọi getUserMedia(). Điều đó có nghĩa là quyền chỉ được yêu cầu một lần cho miền đó, lần đầu tiên gUM được gọi.

+0

nếu ai đó sử dụng Karma và quan tâm đến việc thực hiện điều này, [this] (http://stackoverflow.com/a/19139844/5272567) nên hoạt động – Matthias

1

Có danh sách các chính sách Chromium respects Sự quan tâm của bạn đối với hai tùy chọn sau: VideoCaptureAllowedVideoCaptureAllowedUrls. Tùy chọn này cũng hữu ích cho tôi DefaultMediaStreamSetting, nhưng bây giờ nó không được chấp nhận nữa (tôi đặt nó thành 1). Cách thiết lập - nó chỉ phụ thuộc vào hệ điều hành của bạn. Hãy xem for Linux, Mac OS XWindows

+0

Câu trả lời hữu ích, nhưng tôi hy vọng rằng có thứ gì đó tích hợp hơn sẽ không yêu cầu tôi lấy cài đặt cấu hình bên ngoài môi trường thử nghiệm của mình (cho tính di động). Bạn có biết bất kỳ công cụ nào tự động hóa quy trình này không? – Rick

+0

Tôi không tìm thấy bất kỳ công cụ nào - chỉ có điều này. Nhưng nó thực sự làm việc cho tôi :) –