[android-developers] Re: ServiceTestCase and Contexts

2015-01-29 Thread Igor Ganapolsky
I am getting this error:

 android.content.Context.getMainLooper()' on a null object reference

When calling 
new GoogleApiClient.Builder(getApplication())
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();

 

On Tuesday, February 8, 2011 at 10:54:05 AM UTC-5, nate wrote:

 Thanks for the response.  The assets that I needed for the test 
 project were specifically built for testing and we could not 
 distribute them in the assets of our app (we are keeping the app 
 footprint small), but the workaround I posted above worked fine to get 
 the assets from the test project. 

 On Feb 4, 5:04 pm, A. Elk lancaster.dambust...@gmail.com wrote: 
  Hmmm. 
  
  ServiceTestCase.getSystemContext() returns the context of the test 
  package. ServiceTestCase.getApplication() gets the Application 
  instance in use by the service under test. It's probably better to use 
  that Application object to look at the assets you want. 
  
  When you wrote getContext(), I didn't understand which class you were 
  talking about. In a test case class, calling getContext() will usually 
  default to AndroidTestCase.getContext(), which will give you the 
  context of the test package. In an instrumented test case like 
  ActivityInstrumentationTestCase2, you have an Instrumentation object, 
  so you can call getTargetContext() on that object to get the context 
  of the instrumented component under test. 
  
  To come back to the original problem, which assets do you need to use? 
  Could you build them into your test package as well as the application 
  under test, instead of trying to get them from the app on the fly? 
  
  On Feb 4, 11:20 am, nate nat...@cisco.com wrote: 
  
  
  
  
  
  
  
   OK, I found a solution: 
  
   I created a context to our test package and was able to access the 
   assets: 
  
   mTestAppContext = getContext().createPackageContext(com.blah.test, 
   Context.CONTEXT_IGNORE_SECURITY); 
  
   Just in case anyone else needs a workaround. 
  
   On Feb 4, 10:36 am, nate nat...@cisco.com wrote: 
  
Also, i put the test assets in the target project's directory and 
 was 
able to access them with: 
  
getSystemContext().getAssets().list(.) 
  
On Feb 4, 10:31 am, nate nroy...@gmail.com wrote: 
  
 I checked my setUp() method and I do call super.setUp() as the 
 first 
 line.  The reason I believe the contexts are the same are 
 two-fold: 
  
 I tried both: 
  
 getSystemContext().getAssets().list(.) 
 getContext().getAssets().open(.); 
  
 and neither of them listed any files.  The second reason is that I 
 read the code for ServiceTestCase and saw that the 
 getSystemContext() 
 is just the 
 same context retrieved by getContext(), but it's grabbed before 
 any 
 tests have a chance to mess with it(according to the comment in 
 the 
 code): 
  
 @Override 
 protected void setUp() throws Exception { 
 super.setUp(); 
  
 // get the real context, before the individual tests have 
 a 
 chance to muck with it 
 mSystemContext = getContext(); 
  
 } 
  
 So it would seem that getting the context to the app the testcase 
 is 
 in is not possible with the ServiceTestCase, unless I am missing 
 something. 
  
 On Feb 3, 9:15 pm, A. Elk lancaster.dambust...@gmail.com 
 wrote: 
  
  What leads you to believe that both Context objects contain the 
 same 
  information? If you do a getSystemContext() you should get the 
 context 
  that's stored during setUp(). The only thing that might screw 
 this up 
  is if you overrode setUp() but forgot to call super.setUp() 
 first. 
  
  On Feb 2, 2:08 pm, nate nroy...@gmail.com wrote: 
  
   Hey Everyone, 
  I don't know if I am doing something wrong here, but when I 
 am 
   trying to use the ServiceTestCase class to test my Service, I 
 cannot 
   get a context which points to the test project.  getContext() 
 and 
   getSystemContext() both seem to point to the target project's 
   context.  The reason I need the context of my test app is that 
 i have 
   some assets which i need to be able to use in order to test 
 the 
   service in question.  Does anyone know of a workaround or 
 could point 
   me at a way of resolving this?  (i looked through the source 
 of 
   ServiceTestCase and didn't see another way) 
  
   Something similar to instrumentationtestcase's 
   getInstrumentation.getContext() is what I am looking for. 
  
   Thanks.

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit 

[android-developers] Re: ServiceTestCase and Contexts

2011-02-08 Thread nate
Thanks for the response.  The assets that I needed for the test
project were specifically built for testing and we could not
distribute them in the assets of our app (we are keeping the app
footprint small), but the workaround I posted above worked fine to get
the assets from the test project.

On Feb 4, 5:04 pm, A. Elk lancaster.dambust...@gmail.com wrote:
 Hmmm.

 ServiceTestCase.getSystemContext() returns the context of the test
 package. ServiceTestCase.getApplication() gets the Application
 instance in use by the service under test. It's probably better to use
 that Application object to look at the assets you want.

 When you wrote getContext(), I didn't understand which class you were
 talking about. In a test case class, calling getContext() will usually
 default to AndroidTestCase.getContext(), which will give you the
 context of the test package. In an instrumented test case like
 ActivityInstrumentationTestCase2, you have an Instrumentation object,
 so you can call getTargetContext() on that object to get the context
 of the instrumented component under test.

 To come back to the original problem, which assets do you need to use?
 Could you build them into your test package as well as the application
 under test, instead of trying to get them from the app on the fly?

 On Feb 4, 11:20 am, nate nat...@cisco.com wrote:







  OK, I found a solution:

  I created a context to our test package and was able to access the
  assets:

  mTestAppContext = getContext().createPackageContext(com.blah.test,
  Context.CONTEXT_IGNORE_SECURITY);

  Just in case anyone else needs a workaround.

  On Feb 4, 10:36 am, nate nat...@cisco.com wrote:

   Also, i put the test assets in the target project's directory and was
   able to access them with:

   getSystemContext().getAssets().list(.)

   On Feb 4, 10:31 am, nate nroy...@gmail.com wrote:

I checked my setUp() method and I do call super.setUp() as the first
line.  The reason I believe the contexts are the same are two-fold:

I tried both:

getSystemContext().getAssets().list(.)
getContext().getAssets().open(.);

and neither of them listed any files.  The second reason is that I
read the code for ServiceTestCase and saw that the getSystemContext()
is just the
same context retrieved by getContext(), but it's grabbed before any
tests have a chance to mess with it(according to the comment in the
code):

@Override
    protected void setUp() throws Exception {
        super.setUp();

        // get the real context, before the individual tests have a
chance to muck with it
        mSystemContext = getContext();

    }

So it would seem that getting the context to the app the testcase is
in is not possible with the ServiceTestCase, unless I am missing
something.

On Feb 3, 9:15 pm, A. Elk lancaster.dambust...@gmail.com wrote:

 What leads you to believe that both Context objects contain the same
 information? If you do a getSystemContext() you should get the context
 that's stored during setUp(). The only thing that might screw this up
 is if you overrode setUp() but forgot to call super.setUp() first.

 On Feb 2, 2:08 pm, nate nroy...@gmail.com wrote:

  Hey Everyone,
     I don't know if I am doing something wrong here, but when I am
  trying to use the ServiceTestCase class to test my Service, I cannot
  get a context which points to the test project.  getContext() and
  getSystemContext() both seem to point to the target project's
  context.  The reason I need the context of my test app is that i 
  have
  some assets which i need to be able to use in order to test the
  service in question.  Does anyone know of a workaround or could 
  point
  me at a way of resolving this?  (i looked through the source of
  ServiceTestCase and didn't see another way)

  Something similar to instrumentationtestcase's
  getInstrumentation.getContext() is what I am looking for.

  Thanks.

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en


[android-developers] Re: ServiceTestCase and Contexts

2011-02-04 Thread nate
I checked my setUp() method and I do call super.setUp() as the first
line.  The reason I believe the contexts are the same are two-fold:

I tried both:

getSystemContext().getAssets().list(.)
getContext().getAssets().open(.);

and neither of them listed any files.  The second reason is that I
read the code for ServiceTestCase and saw that the getSystemContext()
is just the
same context retrieved by getContext(), but it's grabbed before any
tests have a chance to mess with it(according to the comment in the
code):

@Override
protected void setUp() throws Exception {
super.setUp();

// get the real context, before the individual tests have a
chance to muck with it
mSystemContext = getContext();

}

So it would seem that getting the context to the app the testcase is
in is not possible with the ServiceTestCase, unless I am missing
something.



On Feb 3, 9:15 pm, A. Elk lancaster.dambust...@gmail.com wrote:
 What leads you to believe that both Context objects contain the same
 information? If you do a getSystemContext() you should get the context
 that's stored during setUp(). The only thing that might screw this up
 is if you overrode setUp() but forgot to call super.setUp() first.

 On Feb 2, 2:08 pm, nate nroy...@gmail.com wrote:







  Hey Everyone,
     I don't know if I am doing something wrong here, but when I am
  trying to use the ServiceTestCase class to test my Service, I cannot
  get a context which points to the test project.  getContext() and
  getSystemContext() both seem to point to the target project's
  context.  The reason I need the context of my test app is that i have
  some assets which i need to be able to use in order to test the
  service in question.  Does anyone know of a workaround or could point
  me at a way of resolving this?  (i looked through the source of
  ServiceTestCase and didn't see another way)

  Something similar to instrumentationtestcase's
  getInstrumentation.getContext() is what I am looking for.

  Thanks.

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en


[android-developers] Re: ServiceTestCase and Contexts

2011-02-04 Thread nate
Also, i put the test assets in the target project's directory and was
able to access them with:

getSystemContext().getAssets().list(.)

On Feb 4, 10:31 am, nate nroy...@gmail.com wrote:
 I checked my setUp() method and I do call super.setUp() as the first
 line.  The reason I believe the contexts are the same are two-fold:

 I tried both:

 getSystemContext().getAssets().list(.)
 getContext().getAssets().open(.);

 and neither of them listed any files.  The second reason is that I
 read the code for ServiceTestCase and saw that the getSystemContext()
 is just the
 same context retrieved by getContext(), but it's grabbed before any
 tests have a chance to mess with it(according to the comment in the
 code):

 @Override
     protected void setUp() throws Exception {
         super.setUp();

         // get the real context, before the individual tests have a
 chance to muck with it
         mSystemContext = getContext();

     }

 So it would seem that getting the context to the app the testcase is
 in is not possible with the ServiceTestCase, unless I am missing
 something.

 On Feb 3, 9:15 pm, A. Elk lancaster.dambust...@gmail.com wrote:







  What leads you to believe that both Context objects contain the same
  information? If you do a getSystemContext() you should get the context
  that's stored during setUp(). The only thing that might screw this up
  is if you overrode setUp() but forgot to call super.setUp() first.

  On Feb 2, 2:08 pm, nate nroy...@gmail.com wrote:

   Hey Everyone,
      I don't know if I am doing something wrong here, but when I am
   trying to use the ServiceTestCase class to test my Service, I cannot
   get a context which points to the test project.  getContext() and
   getSystemContext() both seem to point to the target project's
   context.  The reason I need the context of my test app is that i have
   some assets which i need to be able to use in order to test the
   service in question.  Does anyone know of a workaround or could point
   me at a way of resolving this?  (i looked through the source of
   ServiceTestCase and didn't see another way)

   Something similar to instrumentationtestcase's
   getInstrumentation.getContext() is what I am looking for.

   Thanks.

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en


[android-developers] Re: ServiceTestCase and Contexts

2011-02-04 Thread nate
OK, I found a solution:

I created a context to our test package and was able to access the
assets:

mTestAppContext = getContext().createPackageContext(com.blah.test,
Context.CONTEXT_IGNORE_SECURITY);

Just in case anyone else needs a workaround.

On Feb 4, 10:36 am, nate nat...@cisco.com wrote:
 Also, i put the test assets in the target project's directory and was
 able to access them with:

 getSystemContext().getAssets().list(.)

 On Feb 4, 10:31 am, nate nroy...@gmail.com wrote:







  I checked my setUp() method and I do call super.setUp() as the first
  line.  The reason I believe the contexts are the same are two-fold:

  I tried both:

  getSystemContext().getAssets().list(.)
  getContext().getAssets().open(.);

  and neither of them listed any files.  The second reason is that I
  read the code for ServiceTestCase and saw that the getSystemContext()
  is just the
  same context retrieved by getContext(), but it's grabbed before any
  tests have a chance to mess with it(according to the comment in the
  code):

  @Override
      protected void setUp() throws Exception {
          super.setUp();

          // get the real context, before the individual tests have a
  chance to muck with it
          mSystemContext = getContext();

      }

  So it would seem that getting the context to the app the testcase is
  in is not possible with the ServiceTestCase, unless I am missing
  something.

  On Feb 3, 9:15 pm, A. Elk lancaster.dambust...@gmail.com wrote:

   What leads you to believe that both Context objects contain the same
   information? If you do a getSystemContext() you should get the context
   that's stored during setUp(). The only thing that might screw this up
   is if you overrode setUp() but forgot to call super.setUp() first.

   On Feb 2, 2:08 pm, nate nroy...@gmail.com wrote:

Hey Everyone,
   I don't know if I am doing something wrong here, but when I am
trying to use the ServiceTestCase class to test my Service, I cannot
get a context which points to the test project.  getContext() and
getSystemContext() both seem to point to the target project's
context.  The reason I need the context of my test app is that i have
some assets which i need to be able to use in order to test the
service in question.  Does anyone know of a workaround or could point
me at a way of resolving this?  (i looked through the source of
ServiceTestCase and didn't see another way)

Something similar to instrumentationtestcase's
getInstrumentation.getContext() is what I am looking for.

Thanks.

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en


[android-developers] Re: ServiceTestCase and Contexts

2011-02-04 Thread A. Elk
Hmmm.

ServiceTestCase.getSystemContext() returns the context of the test
package. ServiceTestCase.getApplication() gets the Application
instance in use by the service under test. It's probably better to use
that Application object to look at the assets you want.

When you wrote getContext(), I didn't understand which class you were
talking about. In a test case class, calling getContext() will usually
default to AndroidTestCase.getContext(), which will give you the
context of the test package. In an instrumented test case like
ActivityInstrumentationTestCase2, you have an Instrumentation object,
so you can call getTargetContext() on that object to get the context
of the instrumented component under test.

To come back to the original problem, which assets do you need to use?
Could you build them into your test package as well as the application
under test, instead of trying to get them from the app on the fly?

On Feb 4, 11:20 am, nate nat...@cisco.com wrote:
 OK, I found a solution:

 I created a context to our test package and was able to access the
 assets:

 mTestAppContext = getContext().createPackageContext(com.blah.test,
 Context.CONTEXT_IGNORE_SECURITY);

 Just in case anyone else needs a workaround.

 On Feb 4, 10:36 am, nate nat...@cisco.com wrote:







  Also, i put the test assets in the target project's directory and was
  able to access them with:

  getSystemContext().getAssets().list(.)

  On Feb 4, 10:31 am, nate nroy...@gmail.com wrote:

   I checked my setUp() method and I do call super.setUp() as the first
   line.  The reason I believe the contexts are the same are two-fold:

   I tried both:

   getSystemContext().getAssets().list(.)
   getContext().getAssets().open(.);

   and neither of them listed any files.  The second reason is that I
   read the code for ServiceTestCase and saw that the getSystemContext()
   is just the
   same context retrieved by getContext(), but it's grabbed before any
   tests have a chance to mess with it(according to the comment in the
   code):

   @Override
       protected void setUp() throws Exception {
           super.setUp();

           // get the real context, before the individual tests have a
   chance to muck with it
           mSystemContext = getContext();

       }

   So it would seem that getting the context to the app the testcase is
   in is not possible with the ServiceTestCase, unless I am missing
   something.

   On Feb 3, 9:15 pm, A. Elk lancaster.dambust...@gmail.com wrote:

What leads you to believe that both Context objects contain the same
information? If you do a getSystemContext() you should get the context
that's stored during setUp(). The only thing that might screw this up
is if you overrode setUp() but forgot to call super.setUp() first.

On Feb 2, 2:08 pm, nate nroy...@gmail.com wrote:

 Hey Everyone,
    I don't know if I am doing something wrong here, but when I am
 trying to use the ServiceTestCase class to test my Service, I cannot
 get a context which points to the test project.  getContext() and
 getSystemContext() both seem to point to the target project's
 context.  The reason I need the context of my test app is that i have
 some assets which i need to be able to use in order to test the
 service in question.  Does anyone know of a workaround or could point
 me at a way of resolving this?  (i looked through the source of
 ServiceTestCase and didn't see another way)

 Something similar to instrumentationtestcase's
 getInstrumentation.getContext() is what I am looking for.

 Thanks.

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en


[android-developers] Re: ServiceTestCase and Contexts

2011-02-03 Thread A. Elk
What leads you to believe that both Context objects contain the same
information? If you do a getSystemContext() you should get the context
that's stored during setUp(). The only thing that might screw this up
is if you overrode setUp() but forgot to call super.setUp() first.

On Feb 2, 2:08 pm, nate nroy...@gmail.com wrote:
 Hey Everyone,
    I don't know if I am doing something wrong here, but when I am
 trying to use the ServiceTestCase class to test my Service, I cannot
 get a context which points to the test project.  getContext() and
 getSystemContext() both seem to point to the target project's
 context.  The reason I need the context of my test app is that i have
 some assets which i need to be able to use in order to test the
 service in question.  Does anyone know of a workaround or could point
 me at a way of resolving this?  (i looked through the source of
 ServiceTestCase and didn't see another way)

 Something similar to instrumentationtestcase's
 getInstrumentation.getContext() is what I am looking for.

 Thanks.

-- 
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en