Class: Headdesk::Checks::Receiver

Inherits:
Object
  • Object
show all
Includes:
Headdesk::Check::APK
Defined in:
lib/headdesk/checks/receiver.rb

Overview

Make sure all <reciever> blocks in AndroidManifest.xml point to a Java class that exists in the APK.

Instance Method Summary collapse

Methods included from Headdesk::Check::APK

all, included

Instance Method Details

#callObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/headdesk/checks/receiver.rb', line 14

def call
  receivers = []
  apk.android_manifest.xpath('//receiver').each do |receiver|
    receiver_name = receiver.attributes['name'].to_s
    fail_check unless: -> { apk.class?(receiver_name) }
    klass = apk.find_class(receiver_name)

    describe "#{receiver_name} has onReceive method"
    fail_check unless: -> { klass.method?('onReceive') }

    receivers << {
      name: receiver_name
    }
  end
  export receivers: receivers
end